Wydajność mojej struktury permalink?


14

Przeczytałem dyskusję na temat wydajności różnych bezpośrednich linków na liście mailingowej wp hakerów, na tym forum i wokół Google.

Nie mogłem jednak naprawdę wywnioskować, czy struktura permalink, której używałem przez ostatnie lata, jest dobra, czy nie:

/%postname%-%year%%monthnum%%day%.html

Ta kombinacja umieszcza nazwę postu bezpośrednio po / oraz rok, miesiąc, dzień, czyni ją bardziej unikalną, ponieważ wiele nazw ma tę samą nazwę. Dodatek HTML jest czymś, czego używam przez ostatnie 10 lat na moim blogu (nawet przed Wordpress), więc jest to dziedzictwo.

Nie wiem, czy to jest dobre dla permance czy złe dla wydajności, jak mogę to sprawdzić?

(Prowadzę blog od +10 lat i jest tam około 10.000 postów z wieloma linkami)

spinki do mankietów:

  1. http://codex.wordpress.org/Using_Permalinks

  2. http://www.google.com/search?q=wordpress+category+permalink+performance

  3. http://ottopress.com/2010/category-in-permalinks-consanted-harmful/

  4. http://lists.automattic.com/pipermail/wp-hackers/2010-October/035458.html

Odpowiedzi:


8

Możesz to sprawdzić, patrząc na rozmiar opcji rewrite_rules w bazie danych. Jeśli jest mały (co, moim zdaniem, powinno być w tej strukturze), nie używasz pełnych reguł. Natomiast jeśli widzisz kilka wierszy na statycznej stronie, używasz pełnych reguł i to nie jest dobre.


niestety ... na statycznej stronie GRIN jest kilka linii. Więc prawdopodobnie nie jest to dobra struktura bezpośredniego połączenia ... hmmmm ... to wyjaśnia komunikat o błędzie, który otrzymałem jakiś czas temu "Błąd bazy danych WordPress Dostałem pakiet większy niż 'max_allowed_packet", musiałem zwiększyć to ustawienie w MySql.
edelwater

potem znowu ... jeśli będziesz ciągle dodawać strony przez lata, automatycznie otrzymasz pakiet max_allowed_packet bez względu na wszystko ... chyba że powrócisz do niezbyt długich bezpośrednich linków ... (myślę), więc ... aby być skalowalnym przez następne 30 lat: ) Prawdopodobnie będę musiał wrócić do niecałych linków bezpośrednich. Myślę.
edelwater

1
Tak długo, jak korzystasz z pełnych reguł, Twoja strona, załącznik i niestandardowe reguły dotyczące postów są ogólne. Ładne linki są więc w praktyce dość bezpieczne, pod warunkiem, że używają nieokreślonej struktury.
Denis de Bernardy,

1

Wetuję przyjętą odpowiedź. Złożoność reguł przepisywania nie jest w żaden sposób miarą wydajności wyszukiwania artykułów.

W szczególności wydaje się, że rozpoczynanie twoich bezpośrednich łączy z nazwami postów jest złe; patrz http://codex.wordpress.org/Using_Permalinks#Structure_Tags

Bez wglądu w kod Wordpress mogę sobie wyobrazić, że w jakiś sposób indeksują posty w sposób hierarchiczny. Dlatego zmienne używane w permalinkach powinny być uporządkowane od lewej do prawej, od najbardziej ogólnej do najbardziej użytej zmiennej. Ta heurystyka zdecydowanie sprzyja standardom rok / miesiąc / nazwa lub kategoria / nazwa.


1
category/namejest faktycznie znany i potwierdzany jako powodujący problemy z wydajnością, jeśli występuje duża liczba stron. Nie jest to tak bardzo związane z szybkością wyszukiwania, jak z wydedukowaniem poprawnego obiektu do obsługi, a złożoność reguł przepisywania jest całkowicie istotna.
Rarst

Czy możesz podać dokumentację / kod referencyjny? Właśnie przejrzałem kod (wp-include/rewrite.phpi wp-include/query.php); choć wygląda naprawdę okropnie i niepotrzebnie skomplikowanie, wydaje się, że w zasadzie części są gromadzone i identyfikowane, a następnie bezpośrednio wstawiane do zapytań SQL. Nadal nie rozumiem, dlaczego to powinno trwać dłużej dla różnych zamówień. Ale gdy wykonywane jest zapytanie db, należy wykonać kilka połączeń, a tutaj kolejność naprawdę ma znaczenie. Wydaje mi się, że pamiętam, że MySQL szczególnie źle optymalizuje kolejność łączenia.
Raphael,

Nie jestem zbyt głęboko zagłębiony w teorię DB, ale musisz utrzymywać małe produkty. W każdym razie może to być błąd w tym sensie, że nie jest programowany tak skutecznie, jak mógłby być.
Raphael,

2
Kodeks podaje „Kilka WSKAZÓWEK” (patrz Kodeks) i nie określa pełnego algorytmu. Wskazuje to jednak na ottopress.com/2010/category-in-permalinks-consisted-harmful i comox.textdrive.com/pipermail/wp-testers/2009- stycznia / … w sumie istnieje pewien tarcie między najlepszymi praktykami hakowania adresów URL w dziedzinie interakcji człowieka z komputerem i wydajności w dziedzinie poprawy wydajności.
edelwater

1
Dzięki za wskaźnik ottopress. Okazuje się, że zmiana konwencji powoduje, że każdy URL strony zaczyna się od /page/i każdego adresu URL postu /post/, usuwając jednoznaczność. Powinieneś być w stanie zrobić to sam, dodając stały tekst do struktury permalink. W każdym razie prawdopodobnie byłaby to dobra decyzja; co się stanie, jeśli mam post BAR w kategorii FOO i BAR page, który jest podstroną FOO? Oba rozwiązania zostałyby rozwiązane poprzez /foo/bar/przyjęcie schematu% category% /% postname%. Czy ślimaki są globalnie wyjątkowe?
Raphael

0

Tylko dla kontroli jakości pracy:

Odpowiedź brzmi: NIE, nie jest to dobra struktura bezpośredniego połączenia dotycząca wydajności.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.