Невозможно скопировать медленный журнал запросов row_examined - PullRequest
1 голос
/ 08 ноября 2010

У меня есть запрос, который, согласно моему медленному журналу запросов, немного медленный ....

Query_time: 8.408943  Lock_time: 0.000119 Rows_sent: 1  Rows_examined: 2911766

НО, когда я запускаю запрос с EXPLAIN перед ним, я нете же результаты ...

id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY forum range PRIMARY PRIMARY 4 NULL 3 Using where; Using temporary; Using filesort
1 PRIMARY category ref PRIMARY,forum_id forum_id 4 source_forum.forum.id 2  
1 PRIMARY board ref PRIMARY,category_id category_id 4 source_forum.category.id 4 Using where
1 PRIMARY topic ref PRIMARY,board_id board_id 4 source_forum.board.id 58  
1 PRIMARY post ref PRIMARY,topic_id,trash topic_id 4 source_forum.topic.id 16 Using where
3 DEPENDENT SUBQUERY post index topic_id created 4 NULL 1 Using where
2 DEPENDENT SUBQUERY group_assoc ref board_id,group_id board_id 4 source_forum.board.id 4 Using where

Максимальное число используемых строк: 56 ...

update

Мой запрос:

SELECT
   COUNT(id) AS num
FROM (
    SELECT topic.*,
      (SELECT created FROM post WHERE topic_id = topic.id ORDER BY created DESC LIMIT 1) AS lastpost
    FROM topic
    WHERE board_id = 6 AND
    NOT EXISTS( SELECT id FROM topic_read_assoc WHERE topic_id = topic.id AND member_id = 489 )            
    ) tab
WHERE last_post_time > 1288032259;

объяснить расширенный

id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 440 100.00 Using where
2 DERIVED topic ref board_id board_id 4   429 100.00 Using where
4 DEPENDENT SUBQUERY topic_read_assoc ref topic_id,member_id topic_id 4 source_forum.topic.id 6 100.00 Using where
3 DEPENDENT SUBQUERY post index topic_id created 4 NULL 1 1600.00 Using where

Что означает фильтрованный?

1 Ответ

1 голос
/ 08 ноября 2010

Можете ли вы опубликовать запрос и операторы SHOW CREATE TABLE?

58 действительно невелик, но вы используете временные таблицы И файловую сортировку . И так как все ваши типы - ref, а не eq_ref, вы должны умножить эти значения: 3 * 2 * 4 * 58 * 16 * 1 * 4 = 89k соединенных строк (см. Изученные строки - некоторые таблицы, вероятно, были отсканированы целиком - см. USING WHERE комментарий)

Можете ли вы опубликовать EXPLAIN EXTENDED и SHOW WARNINGS?

...