2009/12/1 Sergey Zhuravlev <[email protected]>: > 2009/12/1 Ruslan Zakirov <[email protected]>:
[snip] >> Вот вы подумайте. Да, это range scan, но он ограничен с двух сторон. >> Индекс отсортирован по возрастанию по обоим колонкам. По этому mysql >> находит точку по istart и начинает сканирование вверх (к уменьшению) и >> должна остановиться как только iend станет меньше нужного нам >> значения. В итоге должно быть просмотрено записей максимум на две >> больше чем реально будет возвращено. > > Недавно прочитал замечательную аналогую двухколоночного индекса. > Есть адресная книга, контакты отсортированы сначала по фамилии, а > потом по имени. > Нам нужно выбрать тех, у кого фамилия меньше чем "Иванов" и имя больше > чем "Сергей". > Очевидно, что придётся просматривать последовательно всех, кто > соответствует первому условию. Безусловно. Это я тупил. Я как-то принял за данность, что мы знаем когда остановить сканирование по первой части индекса. >> Можете сравнить запросы совсем без сортировок? > > предложенный мной запрос без сортировки будет возвращать > неправильные результаты, поэтому на него не стоит смотреть. С limit в общем запрос неправильный, особенно если есть вложенные блоки, что конечно не гуд, но в это БД они есть. Неправильный потому что можно всегда получить больше по размеру блок. Возможно стоит их вычищать как и прочий мусор после обновления БД. -- Best regards, Ruslan. -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
