Не так давно просили посмотреть один сайтик на Wordpress, так вот некоторые выборки там выполняются просто довольно медленно.
Вкратце, есть таблица wp_postmeta с ~480 000 записей где прожорливый WP хранит аттрибуты постов с вот такой структурой:
Код: Выделить всё
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| meta_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| post_id | bigint(20) unsigned | NO | MUL | 0 | |
| meta_key | varchar(255) | YES | MUL | NULL | |
| meta_value | longtext | YES | | NULL | |
+------------+---------------------+------+-----+---------+----------------+
Код: Выделить всё
SELECT SQL_NO_CACHE meta_value+0 FROM wp_postmeta WHERE meta_key='views' ORDER BY (meta_value+0) DESC LIMIT 3; выполняется за 0,20 сек
Код: Выделить всё
Результат EXPLAIN SELECT SQL_NO_CACHE meta_value+0 FROM wp_postmeta WHERE meta_key='views' ORDER BY (meta_value+0) DESC LIMIT 3;
+----+-------------+---------------------+------+---------------+------+---------+------+--------+----------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------------+------+---------------+------+---------+------+--------+----------------+
| 1 | SIMPLE | wp_postmeta | ALL | NULL | NULL | NULL | NULL | 479223 | Using filesort |
+----+-------------+---------------------+------+---------------+------+---------+------+--------+----------------+