SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.12.2010 16:01:41

venom280
Участник
Зарегистрирован: 03.12.2010
Сообщений: 6

Какая из ситуаций лучше?


id  select_type table type         possible_keys key        key_len ref  rows Extra
1   SIMPLE      tbl   range        PRIMARY       PRIMARY    6       NULL 8736 where; index; filesort
2   SIMPLE      tbl   index_merge  ...           idx1,idx2  1,2     NULL 5364 intersect(idx1,idx2); where; index; filesort
 


Таблица на 300 000 записей. Для запроса отбирается около 40 000 отсортированных (filesort).  Нужны первые 2-3 записи.
Во втором случае rows всего 5364, но добавляется пересечение. Насколько это хуже по сравнению с меньшим rows?

Отредактированно venom280 (04.12.2010 16:03:00)

Неактивен

 

#2 05.12.2010 17:05:40

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Какая из ситуаций лучше?

Честно говоря, ничего не понял. Вы привели пример одного EXPLAIN, а не двух smile
Если нужны 3 строки — желательно сделать сортировку по индексу и LIMIT 3.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson