|
Использование IDKEY при выборке с сортировкой ORDER BY ID DESC
|
|||
---|---|---|---|
#18+
На неделе второй раз столкнулся с ситуацией, когда при выборке 10 строк таблицы с 2 млн. записей все перестает работать при сортировке по АйДи. Т.е. запрос типа SELECT myColor from myTable where MyDate between ? and ? отдает 10 результатов, к примеру (при наличии индекса на MyDate) 0.000 с. а вот SELECT TOP 1 myColor from myTable where MyDate between ? and ? ORDER BY ID DESC уходит в чтение IDKEY таблицы, и причем заигнорить этот индекс не получается. Минуты эта п..ла считает. В итоге применяю двойные(!) запросы вида (или вариации на ту же тему): SELECT MAX(ID) into :maxID from myTable where MyDate between ? and ? SELECT myColor from myTable where ID = :maxId Это работает приемлемо, но страшно меня нервирует. М.б. есть какие-то другие варианты отбить у каше охоту лезть в АйДиКей при наличии в запросе прекрасных возможностей сделать выборку по нормальным индексам? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 07:58 |
|
Использование IDKEY при выборке с сортировкой ORDER BY ID DESC
|
|||
---|---|---|---|
#18+
используйте %NOTOPOPT в запроса from %NOTOPOPT myclass ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 08:03 |
|
|
start [/forum/topic.php?fid=39&msg=38453936&tid=1557030]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 357ms |
total: | 508ms |
0 / 0 |