Leistung meiner Permalink-Struktur?
3 Antworten
- Stimmen
-
- 2010-10-29
Sie können dies überprüfen,indem Sie die Größe der Option rewrite_rulesin der Datenbank überprüfen.Wennes kleinist (wasmeiner Meinungnachbei dieser Struktur der Fall sein sollte),verwenden Sie keine ausführlichen Regeln.Wenn Sie dagegenmehrere Zeilenpro statischer Seite sehen,verwenden Sie ausführliche Regeln undesistnichtgut.
You can check by looking at the size of the rewrite_rules option in the database. If it's small (which I believe it should with this structure), you're not using verbose rules. By contrast, if you see several lines per static page, you're using verbose rules and it's not good.
-
Leider ...gibt esmehrere Zeilenpro statischer Seite GRIN.Diesist also wahrscheinlich keinegute Permalink-Struktur ... hmmmm ... dieserklärteine Fehlermeldung,dieich voreiniger Zeiterhalten habe. "WordPress-Datenbankfehler Habeein Paketgrößer als 'max_allowed_packet",ichmusste diese Einstellungin MySqlerhöhen.unfortunately... there are several lines per static page GRIN. So this is probably not a good permalink structure...hmmmm... this does explain an error message I got a while ago "WordPress database error Got a packet bigger than 'max_allowed_packet", I had to increase this setting in MySql.
- 0
- 2010-10-29
- edelwater
-
andererseits ... wenn Sie über Jahre hinwegimmer wieder Seiten hinzufügen,erhalten Sie automatischmax_allowed_packet,egal waspassiert ...es sei denn,Sie kehren zunicht hübschen Permalinks zurück ... (glaubeich),umfür dienächsten 30 Jahre skalierbar zu sein:) Ich werde wahrscheinlich aufnicht hübsche Permalinks zurückgreifenmüssen.Meiner Ansichtnach.then again... if you keep adding pages during years you will automatically get max_allowed_packet no matter what... unless you revert to non pretty permalinks... (i think) so... to be scalable for the next 30 years :) I will probably have to revert to non pretty permalinks. I think.
- 0
- 2010-10-29
- edelwater
-
Solange Sienicht ausführliche Regeln verwenden,sind Ihre Seiten-,Anhangs- undbenutzerdefinierten Posttypregelngenerisch.So sind hübsche Linksin der Praxis ziemlich sicher,solange sieeine nicht ausführliche Struktur verwenden.As long as you're using non verbose rules your page, attachment and custom post type rules are generic. So pretty links are quite safe in practice, so long as they're using a non verbose structure.
- 1
- 2010-11-11
- Denis de Bernardy
-
- 2010-11-12
Ich habeein Vetogegen die akzeptierte Antworteingelegt.Die Komplexität der Umschreiberegelnistin keiner Weiseein Maßfür die Leistung der Artikelsuche.
Insbesondere scheintes schlecht zu sein,Ihre Permalinksmit Postnamen zubeginnen.Siehe http://codex.wordpress.org/Using_Permalinks#Structure_Tags
Ohne sichmit Wordpress-Codebefasst zu haben,kannichmir vorstellen,dass sie Beiträgeirgendwie hierarchischindizieren.Daher sollten diein Permalinks verwendeten Variablen von linksnach rechts von der allgemeinsten zur am häufigsten verwendetenpostspezifischen Variablengeordnet werden.Diese Heuristikbevorzugt stark die Standards Jahr/Monat/Name oder Kategorie/Name.
I veto the accepted answer. The complexity of the rewrite rules is in no way a measure for the performance of article lookup.
In particular, it seems that starting your permalinks with post names is bad; see http://codex.wordpress.org/Using_Permalinks#Structure_Tags
Without having looked into Wordpress code, I can imagine that they somehow index posts hierarchically. Therefore, the variables used in permalinks should be ordered from left to right from the most general to the most post specific variable used. This heuristic strongly favors the standards year/month/name or category/name.
-
"Kategorie/Name"isttatsächlichbekannt undbestätigt Leistungsprobleme,wenneine große Anzahl von Seiten vorhandenist.Es hängtnicht so sehrmit der Geschwindigkeit der Suche zusammen,sondern vielmehrmit der Ableitung des richtigen zubedienenden Objekts,und die Komplexität der Umschreiberegeln **ist ** vollständig relevant.`category/name` is actually known and confirmed as causing performance issues if large amount of pages is present. It is not as much related to speed of lookup as to deducing correct object to serve and complexity of rewrite rules **is** completely relevant.
- 1
- 2010-11-12
- Rarst
-
Können Siebitte eine Dokument-/Code-Referenz angeben?Ich habegerade den Code "(wp-include/rewrite.php" und "wp-include/query.php") überflogen.Währendes wirklich schrecklich und unnötig kompliziert aussieht,scheintes,dassim Grundegenommen die Teilegesammelt undidentifiziert und dann direktin SQL-Abfrageneingefügt werden.Ich kannimmernochnicht verstehen,warum diesbei verschiedenen Bestellungen länger dauern sollte.Aber wenn die Datenbankabfrage ausgeführt wird,müssenmehrere Verknüpfungen ausgeführt werden,und die Reihenfolgeist wirklich wichtig.Ich scheinemich zuerinnern,dass MySQLbesonders schlecht darinist,die Join-Reihenfolge zu optimieren.Can you give a doc/code reference please? I just skimmed the code `(wp-include/rewrite.php` and `wp-include/query.php`); while is looks really awful and unnecessarily complicated, it appears that basically the parts are collected and identified and then directly inserted into SQL queries. I still cannot see why this should take longer for different orders. But when the db-query is executed, several joins have to be performed and _here_ order really matters. I seem to remember that MySQL is particularly bad at optimising join order.
- 0
- 2010-11-12
- Raphael
-
Ichbin nicht zutief in der DB-Theorie,aber Siemüssen Produkte klein halten.Injedem Fall könnte diesein Fehlerin dem Sinne sein,dassesnicht soeffizientprogrammiertist,wiees sein könnte.I am not too deep into DB theory, but you have to keep products small. In any case, this might be a bug in the sense that it is programmed not as efficiently as it could be.
- 0
- 2010-11-12
- Raphael
-
Nun ...ich habegelesen,dasses schlecht war,mit Postnamen zubeginnen UND die andere Antwort zeigttatsächlichmehrere Zeilenpro Eintrag (aberfürmeinen Blogmit 10.000 Posts,denichjahrelang auf WordPressbetreibe,ändereich wahrscheinlichnicht viel,ohne viele Referenzen zu verlieren).Ich habe Ihre Antwort hier und das "Veto"nicht vollständig verstanden. Wasmussichtun,wenn Sieein Vetogegen eine Antworteinlegen?Well... i read that starting with post names was bad AND the other answer shows indeed multiple lines per entry (but for my 10.000 posts blog which i run on wordpress for years there is probably not much I change without losing a lot of references). I did not completely understand your answer here and the "veto" though, what do i need to do when you veto an answer????
- 0
- 2010-11-14
- edelwater
-
Ich habenur "Veto"geschrieben,hiergibt es keine solche Funktion.Mein Punktist,dasseine höhere Laufzeit durchmehr Code oder das DBMS verursacht wird.Daich keinen Grundfinden konnte,der darauf hindeutet,dasseine andere Reihenfolge der URL-Komponenten die Menge des ausgeführten Codeserhöhen sollte,behaupteich,dass der Grundbei den Datenbankabfragen liegt.Abermit so vielen Postsist vielleichtjede Reihenfolge langsam,weil Sie so viele Posts haben.Verwenden Sie Caching?I only wrote "veto", there is no such function here. My point is that higher runtime is caused by more code being executed or the DBMS. Since I could not find any reason that would suggest that different order of URL components should increase the amount of code run, I claim the reason lies with the database queries. But with that many posts, maybe any order is slow _because you have so many posts_. Do you use caching?
- 0
- 2010-11-14
- Raphael
-
Ähm,nichtsfür ungut,aberein Vetogegen eine Antworteinzulegen,ohne den WP-Codegründlich studiert zu haben,macht wenig Sinn.FWIW,ich habegenug WP-Codeim Allgemeinen und WP-Permalinks-Codeim Besonderen verfasst,korrigiert und optimiert,um zu wissen,was skaliert und wasnicht.;-) Ausführliche Regeln können zueinergroßen Einstellungin der Optionstabelleführen,die dannbei jedem Laden der Seite aus der Datenbank abgerufen (oder zwischengespeichert) und unserialisiert werdenmuss.Ich habegesehen,dass der letztere Anwendungsfall 2006einen mäßiggeladenen Bi-Xeon-Server zum Crawlenbrachte.Err, no offense, but vetoing an answer without having thoroughly studied the WP code doesn't make much sense. FWIW, I authored, fixed and optimized enough WP code in general, and WP permalinks code in particular, to know what scales and what doesn't. ;-) Verbose rules can lead to a huge setting in the options table, that then needs to be pulled from the database (or memcached) and unserialized on every page load. I've seen the latter use-case bring a moderately loaded bi-xeon server to a crawl in 2006.
- 0
- 2010-11-14
- Denis de Bernardy
-
Nun,dann sollten Siein der Lage sein,mehr Einzelheiten anzugeben als "nicht wortreich sein".Wasist hier Ausführlichkeit?Ist die Reihenfolge der Variablen wichtig?(Da Codex dies sagt und das,was Sie sagen,dies überhauptnichterklärt!) Wenn diese Einstellungeinmalpro Seitenladevorgangeinmalgezogen werdenmuss,warumerhöht sich der Effekt,je mehr Beiträge vorhanden sind?Sollte Deserialisierennicht schnell sein?Abernatürlich denkeich auf der Ebene dessen,was Sinnmacht,nicht auf der Ebene des Codes.Nichtjeder Codemacht Sinn.Well, then you should be able to give more specifics than "don't be verbose". What is verbosity here? Does the order of variables matter? (since Codex says it does and what you say does not explain this at all!) Furthermore, if this setting has to be pulled once per page load, why does the effect increase the more posts there are? Should deserializing not be _fast_? But, yes, certainly, I am thinking on the level of what makes sense, not what is in the code. Not all code makes sense.
- 0
- 2010-11-14
- Raphael
-
Der Codexgibt "Einpaar Hinweise" (siehe Codex) und spezifiziertnicht den vollständigen Algorithmus.Es wirdjedoch auf http://ottopress.com/2010/category-in-permalinks-considered-harmful/und http://comox.textdrive.com/pipermail/wp-testers/2009-January/011097.html all verwiesenInsgesamtgibt eseine Art Reibung zwischen Best Practicesfür URL-Hackingim Bereich der Mensch-Computer-Interaktion und Leistungim Bereich der Leistungsverbesserung.the Codex give "A few HINTS" (see Codex) and does not specificy the complete algorithm. It does however point to http://ottopress.com/2010/category-in-permalinks-considered-harmful/ and http://comox.textdrive.com/pipermail/wp-testers/2009-January/011097.html all in all there is a sort of friction between best practices of url hacking in the field of human computer interaction and performance from the field of performance improvement.
- 2
- 2010-11-14
- edelwater
-
Dankefür den Zeiger ottopress.Es scheint,dass Konventionen sogeändert werden,dassjede Seiten-URLmit "/page/" undjede Post-URLmit "/post/"beginnt,wodurch die Eindeutigkeitbeseitigt wird.Sie sollten dies selbsttun können,indem Sie denfesten Text zu Ihrer Permalink-Struktur hinzufügen.Dies wäre wahrscheinlich sowiesoeine gute Entscheidung;Waspassiert,wennicheine Post-BARin der Kategorie FOO undeine Seiten-BAR habe,dieeine Unterseite von FOOist?Beides würde durch `/foo/bar/` unter der Annahme des Schemas% category%/%postname% angesprochen.Oder sind Schnecken weltweiteinzigartig?Thanks for the pointer ottopress. It appaers that changing conventions such that every page url would start with `/page/` and every post url with `/post/`, removing the unambiguity. You should be able to do this yourself, adding the fixed text to your permalink structure. This would probably be a good decision, anyways; what happens if I have a post BAR in category FOO and a page BAR that is subpage of FOO? Both would be addressed by `/foo/bar/` assuming the %category%/%postname% scheme. Or are slugs globally unique?
- 1
- 2010-11-14
- Raphael
-
Oh,und so wieiches verstehe,brichtnicht viele Beiträge dieses System,aber viele Seiten,richtig?Da Wordpress als Blogging-Systembegann,war dies sinnvoll.Dann.Oh, and as I understand it not having many posts breaks this system but having many pages, right? Since Wordpress started out as blogging system, this made sense. Then.
- 0
- 2010-11-14
- Raphael
-
Ja,viele Seiten und Anhänge zu habenist schlechtmit ausführlichen Regeln,abernicht viele Beiträge.Der Grund dafürist,dass wp davon ausgeht,dasses sich umeinen Beitrag handelt,sofernin einer Regelnichts anderes angegebenist.Ausführliche Regeln wurdeneingeführt,als wpbereits 2005 Seiteneinführte,um Permalink-Kollisionenmit Posts zu vermeiden.Esgibt immernochmehrere Tickets (einigemit Patches,andere ohne),die versuchen,die Dinge an dieser Front zu verbessern.Yeah, having many pages and attachment is bad with verbose rules, but not having many posts. The reason is, wp assumes it's a post unless a rule specifies otherwise. Verbose rules were introduced when wp introduced pages, way back in 2005, in order to avoid permalink collisions with posts. There are still several tickets (some with patches, some without) that try to improve things on this front.
- 0
- 2010-11-14
- Denis de Bernardy
-
Oh,undfallses unklarist,was ausführliche Regeln sind,ist das Wesentliche,dassjede Seite,jeder Anhang undjederbenutzerdefinierte Beitragstyp,anstatteinen generischen regulären Ausdruck zur Identifizierung aller Daten dieses Typs zu verwenden,mehrere Regelnenthält und somitRegex - wiederpro Seite,Anhang oderbenutzerdefiniertem Beitragstyp.Dies allein reicht aus,um die Dingeerheblich zu verlangsamen,aber derechte Flaschenhals hängtin erster Linie damit zusammen,die Regeln zu ziehen und unserialisieren.Oh, and, in case it's unclear what verbose rules are, the gist of it is, each page, attachment, and custom post type, instead of using a generic regex to identify all data of that type, ends up with several rules and thus regex -- again, per page, attachment, or custom post type. This alone is enough to slow things down significantly, but the real bottle neck is actually related to pulling and unserializing the rules in the first place.
- 0
- 2010-11-14
- Denis de Bernardy
-
Was also durcheinfaches Regexp-Matchinggelöst werden könnte,wird zueinem schrecklichen Durcheinander aufgebläht,nur weileinige Annahmen von Anfang annichtmehr zutreffen.Gibteseinen bestimmten Grund,warum das Verhaltennichtgeändert wurde?Angst,weil alte Linksbrechen würden?Insbesondere die Unterscheidung zwischen Seiten und Beiträgenerscheint heutzutage künstlich,aber dasistein anderes Thema.So what could be solved by simple regexp matching is bloated to a horrible mess just because some assumptions from the beginning do no longer apply. Is there a particular reason why the behaviour has not been changed? Fear because old links would break? In particular, the distinction between pages and posts seems artificial nowadays, but that is another topic.
- 0
- 2010-11-14
- Raphael
-
"Grund warumnichtgeändert" -> http://core.trac.wordpress.org/search?q=permalinks"reason why not changed" --> http://core.trac.wordpress.org/search?q=permalinks
- 0
- 2010-11-15
- edelwater
-
618 Bugs sindein Grund,esganzneu zumachen,nicht zubehalten.618 bugs are a reason to do it whole new, not to keep it.
- 0
- 2010-11-15
- Raphael
-
@ Raphael: Ich vermute,jeder hier wird dem zustimmen.Aber wiejeder von uns,dertatsächlich Patches zum WP-Kernbeisteuert,weiß und wieeinige dieser 618 Suchergebnisse zeigen werden (es sind übrigensnicht alle Fehler: Beachten Sie auch die Patches und Änderungssätze),tun dies die WP-Kernentwicklernichtbereitwilligbereitgestellte Fehlerbehebungen und Verbesserungen.Insbesondere,wennes sich umnichttriviale Verbesserungen handelt.@Raphael: I suspect everyone here will agree on that. But as each of us who actually contribute patches to WP core know, and as quite a few of those 618 search results will reveal (they're not all bugs, btw: notice the patches and changesets too), the WP core devs do not readily commit contributed bug fixes and enhancements. In particular when they're non-trivial enhancements.
- 0
- 2010-11-15
- Denis de Bernardy
-
Na sicher.Siemöchtennichtfüreine Pause verantwortlich sein,die Sienichteinmal selbst codiert haben.Aber wirbekommen ständigneue Funktionen.Vielleichtistein Feature-Freezein Ordnung,biseinige Probleme (ich vermute,esgibt mehr Ecken und Kantenin WP)behoben sind?Of course. You do not want to be responsible for a break you did not even code yourself. But we get new features all the time; maybe a feature freeze until some issues (I suspect there are more rough edges in WP) are handled is in order?
- 0
- 2010-11-16
- Raphael
-
Ich habe die Diskussion über die Leistung verschiedener Permalinks auf der Mailingliste der wp-Hacker,in DIESEM Forum undin der Umgebung von Googlegelesen.
Ich konntejedochnicht wirklich ableiten,ob die Permalink-Struktur,dieichin den letzten Jahren verwendet habe,gutist odernicht:
Diese Kombination setzt den Postnamen direktnach dem/und die Kombination aus Jahr,Monat und Tagmachtihneindeutiger,da viele Postnamen denselben Namentragen. Der HTML-Zusatzistetwas,dasichin den letzten 10 Jahrenin meinem Blog (sogar vor WordPress) verwendet habe,alsoist dasein Vermächtnis.
Ich weißnicht,ob diesgutfür die Dauerhaftigkeit oder schlechtfür die Leistungist. Wie kannich das überprüfen?
(Ichbetreibe den Blog seit +10 Jahren undesgibt ungefähr 10.000 Beiträgemit vielen Linksin)
Links:
http://codex.wordpress.org/Using_Permalinks
http://www.google.com/search?q=wordpress+ Kategorie + Permalink + Leistung
http://ottopress.com/2010/category-in-permalinks-considered -schädlich/
http://lists.automattic.com/pipermail/wp- Hacker/2010-Oktober/035458.html