Оптимизация сортировки файлов базы данных wordpress mysql в 415885 строк - PullRequest
0 голосов
/ 08 января 2020
mysql> explain SELECT  t.*, tt.* FROM wp_terms AS t  INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('post_tag') AND tt.count > 0 ORDER BY tt.count DESC LIMIT 45;
+----+-------------+-------+------------+--------+---------------------------+----------+---------+--------------------------------------------------+--------+----------+----------------------------------------------------+
| id | select_type | table | partitions | type   | possible_keys             | key      | key_len | ref                                              | rows   | filtered | Extra                                              |
+----+-------------+-------+------------+--------+---------------------------+----------+---------+--------------------------------------------------+--------+----------+----------------------------------------------------+
|  1 | SIMPLE      | tt    | NULL       | ref    | term_id_taxonomy,taxonomy | taxonomy | 130     | const                                            | 415885 |    33.33 | Using index condition; Using where; Using filesort |
|  1 | SIMPLE      | t     | NULL       | eq_ref | PRIMARY                   | PRIMARY  | 8       | dosk_com_app20413575705d6c60930e2af.tt.term_id |      1 |   100.00 | NULL                                               |
+----+-------------+-------+------------+--------+---------------------------+----------+---------+--------------------------------------------------+--------+----------+----------------------------------------------------+

Каждый раз, когда к сайту обращаются, он выполняет сортировку файлов в 415885 строк, что часто занимает 14 секунд. Любая идея, как я могу оптимизировать это?

спасибо

1 Ответ

1 голос
/ 08 января 2020

Сортировка файлов происходит из-за порядка следования, однако я не могу понять, как вы могли бы устранить это в такой системе, как Wordpress. По крайней мере, попробуйте оператор объяснения без заказа, чтобы убедиться, что это так.

Я бы посмотрел следующие пути для оптимизации

  • Кэширование страницы
  • Запрос должен быть кэшируемым, если MySQL кэш запроса включен?
  • wp_term_taxonomy звучит как таблица ссылок, которая должна быть довольно маленькой для каждой строки. Поэтому сканирование таблицы не должно занимать 14 секунд. Это указывало бы на недостаточную производительность диска
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...