Это может быть глупый вопрос. У меня более 30 миллионов записей.
Table 1
Column A(int) - Column B(Boolean) - Column C(int) - Column D(DateTime)
У меня будет составной индекс по (A, B, C, D).
Следующий запрос:
Select * from table1 where A=12 and B!=0 ORDER BY C DESC ,D ASC.
Поскольку Order by C DESC and D ASC
невозможно. Я выполняю обратную сортировку, умножая C на (-1) каждый раз, когда вставляю запись.
Теперь запрос, который я пытаюсь выполнить, будет:
Select * from table1 where A=12 and B!=0 ORDER BY C ASC ,D ASC.
Учитывая два критерия в предложении where
и order by
, будет ли этот запрос полностью использовать индексацию? Или есть другое лучшее решение?