Конференция "Базы" » Индекс с интервалами дат
 
  • sniknik © (16.03.15 20:38) [20]
    > В этом случае СУБД начнет поиск по индексу следующим образом:
    не думай за нее... просто посмотри план запроса. в последних версиях тебе еще и совет даст какой индекс выгоднее.
  • Ega23 © (16.03.15 22:54) [21]

    > Но как при этом работает индекс по двум полям (eventStartDate,
    >  eventEndDate)?


    А зачем тебе индекс по двум полям? Сделай два индекса, один по eventStartDate, другой по eventEndDate.
    Ну и планы запроса смотреть, как минимум есть от чего отталкиваться.
  • Ega23 © (16.03.15 22:55) [22]

    > Сначала строится индекс по первому полю, а затем, для каждой
    > записи индекса строится индекс по второму полю.


    Это зависит от конкретной СУБД и работы оптимизатора.
  • Кщд © (17.03.15 09:44) [23]
    >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

    подскажу: ни в чём
    это просто определённым образом отсортированные наборы
    а по одному полю или десяти - не важно
  • Кщд © (17.03.15 09:49) [24]
    >sniknik ©   (16.03.15 17:23) [18]
    если применить "not" к выражению по ссылке и раскрыть скобки, то получится: Ega23 ©   (14.03.15 19:29) [3]
 
Конференция "Базы" » Индекс с интервалами дат
Есть новые Нет новых   [134427   +34][b:0][p:0]