mysql

Nov 18, 2007 16:20

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

Leave a comment

Comments 3

rafuck November 18 2007, 14:54:47 UTC
запрос бы показал чтоль...
ну и
show index from table
и
explain запрос
до кучи!

Reply

mafanas November 18 2007, 19:24:05 UTC
да везде сплошняком и ты знаешь где :) там по пять-семь индексов на таблицу, майсиквел хвататет первый похожий немножко и файлсортом его, файлсортом

Reply

rafuck November 19 2007, 09:36:55 UTC
ну он с where начинает оптимизировать, насколько я понимаю, а поскольку индекс на единичную выборку (без джойнов) он умеет использовать только один, то поэтому ORDER делает файлсортом. Выход либо составной индекс делать, включающий поля как из WHERE, так и из ORDER, либо явно говорить какой индекс использовать в данном запросе. А вообще, конечно, уебанство, мне тоже не нравится как MySQL с индексами работает.

Reply


Leave a comment

Up