-
> В этом случае СУБД начнет поиск по индексу следующим образом: не думай за нее... просто посмотри план запроса. в последних версиях тебе еще и совет даст какой индекс выгоднее.
-
> Но как при этом работает индекс по двум полям (eventStartDate, > eventEndDate)?
А зачем тебе индекс по двум полям? Сделай два индекса, один по eventStartDate, другой по eventEndDate. Ну и планы запроса смотреть, как минимум есть от чего отталкиваться.
-
> Сначала строится индекс по первому полю, а затем, для каждой > записи индекса строится индекс по второму полю.
Это зависит от конкретной СУБД и работы оптимизатора.
-
>Ega23 © (16.03.15 22:54) [21] >Сделай два индекса, один по eventStartDate, другой по eventEndDate. если речь о index_join, то затея плохая, т.к. тогда ситуация будет ровно как в >Дмитрий С © (16.03.15 17:56) [19]
т.е. будут извлечены два набора (по каждому индексу) и уже затем объединены "Но по условию eventStartDate <= '2015-12-31' будут выбраны все данные", т.е. индекс по eventStartDate - будет неэффективен
>Дмитрий С © (16.03.15 17:56) [19] >Сначала строится индекс по первому полю, а затем, для каждой записи >индекса строится индекс по второму полю. нет никаких подиндексов ответьте себе на вопрос, в чём отличие двух наборов: order by field_ и order by field_, field_2
подскажу: ни в чём это просто определённым образом отсортированные наборы а по одному полю или десяти - не важно
-
>sniknik © (16.03.15 17:23) [18] если применить "not" к выражению по ссылке и раскрыть скобки, то получится: Ega23 © (14.03.15 19:29) [3]
|