Производительность моей структуры постоянных ссылок?

14

Я прочитал обсуждение производительности различных постоянных ссылок в списке рассылки wp hackers, на ЭТОМ форуме и вокруг Google.

Однако я не мог бы сделать вывод, хороша ли структура постоянных ссылок, которую я использовал в последние годы:

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

Эта комбинация ставит почтовое имя сразу после /, а комбинация года, месяца и дня делает его более уникальным, поскольку многие почтовые имена имеют одно и то же имя. Добавление html - это то, что я использовал в течение последних 10 лет в своем блоге (даже до WordPress), так что это наследие.

Я не знаю, хорошо это для производительности или плохо для производительности, как я могу это проверить?

(Я веду блог в течение +10 лет и около 10.000 постов с большим количеством ссылок)

ссылки по теме:

  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-considered-harmful/

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

edelwater
источник

Ответы:

8

Вы можете проверить, посмотрев на размер опции rewrite_rules в базе данных. Если он маленький (что, я считаю, должно быть с этой структурой), вы не используете подробные правила. Напротив, если вы видите несколько строк на статической странице, вы используете подробные правила, и это не хорошо.

Дени де Бернарди
источник
к сожалению ... на статической странице GRIN есть несколько строк. Так что это, вероятно, не очень хорошая структура постоянных ссылок ... хмммм ... это объясняет сообщение об ошибке, которое я недавно получил "Ошибка базы данных WordPress. Получен пакет больше, чем" max_allowed_packet ", мне пришлось увеличить этот параметр в MySql.
edelwater
с другой стороны ... если вы продолжаете добавлять страницы в течение многих лет, вы автоматически получите max_allowed_packet, несмотря ни на что ... если только вы не вернетесь к ненормальным постоянным ссылкам ... (я думаю) так ... чтобы быть масштабируемыми в течение следующих 30 лет: ) Мне, вероятно, придется вернуться к не очень постоянным ссылкам. Я думаю.
edelwater
1
Пока вы используете не многословные правила, ваша страница, вложения и правила пользовательских типов сообщений являются общими. Так что красивые ссылки довольно безопасны на практике, если они используют не многословную структуру.
Дени де Бернарди
1

Я наложил вето на принятый ответ. Сложность правил перезаписи ни в коей мере не является мерой эффективности поиска статей.

В частности, кажется, что начинать ваши постоянные ссылки с имен постов - плохо; см. http://codex.wordpress.org/Using_Permalinks#Structure_Tags

Не изучая код Wordpress, я могу представить, что они каким-то образом индексируют посты в иерархическом порядке. Следовательно, переменные, используемые в постоянных ссылках, следует упорядочивать слева направо от самых общих к наиболее часто используемым переменным после публикации. Эта эвристика сильно поддерживает стандарты год / месяц / имя или категория / имя.

Рафаэль
источник
1
category/nameна самом деле известно и подтверждается как вызывающее проблемы с производительностью, если присутствует большое количество страниц. Это не столько связано с скоростью поиска, чтобы выводя правильный объект , чтобы служить и сложность перезаписи правил является полностью актуальной.
Первое
Можете ли вы дать ссылку на документ / код, пожалуйста? Я просто просмотрел код (wp-include/rewrite.phpи wp-include/query.php); Хотя это выглядит действительно ужасно и излишне сложно, похоже, что в основном части собираются и идентифицируются, а затем напрямую вставляются в запросы SQL. Я до сих пор не понимаю, почему это должно занять больше времени для разных заказов. Но когда db-запрос выполняется, необходимо выполнить несколько соединений, и здесь порядок действительно имеет значение. Кажется, я помню, что MySQL особенно плохо оптимизирует порядок соединения.
Рафаэль
Я не слишком глубоко разбираюсь в теории БД, но вы должны держать продукты небольшими. В любом случае, это может быть ошибкой в ​​том смысле, что она запрограммирована не так эффективно, как могла бы быть.
Рафаэль
2
Кодекс дает «Несколько подсказок» (см. Кодекс) и не конкретизирует полный алгоритм. Тем не менее, он указывает на ottopress.com/2010/category-in-permalinks-considered-harmful и comox.textdrive.com/pipermail/wp-testers/2009-January/… В общем, существует своего рода трения между лучшими практиками URL-взлома в области взаимодействия человека с компьютером и производительности из области повышения производительности.
edelwater
1
Спасибо за указатель оттопресс. Кажется, что изменяющиеся соглашения таковы, что каждый URL-адрес страницы начинается с /page/каждого URL- адреса поста /post/, что устраняет однозначность. Вы должны быть в состоянии сделать это самостоятельно, добавив фиксированный текст в структуру постоянных ссылок. В любом случае это было бы, вероятно, хорошим решением; что произойдет, если у меня есть сообщение BAR в категории FOO и страница BAR, которая является подстраницей FOO? И то, и другое будет /foo/bar/решено с помощью схемы% category% /% postname%. Или слизни глобально уникальны?
Рафаэль
0

Просто для рабочего процесса QA:

Ответ таков: НЕТ, это не очень хорошая постоянная структура в отношении производительности.

edelwater
источник