Я хочу создать индексы SQL, чтобы ускорить, например, поиск "значений ряда" в базе данных. Каждый Value
принадлежит Series
и имеет дату:
@Entity
class Series { … }
Value {
Series series;
Date date;
…
}
Существуют сотни рядов, каждый из которых содержит многие тысячи значений.
Я часто выполняю два типа поиска:
1) Поиск всех значений, принадлежащих определенной серии (независимо от их дат).
2) Поиск всех значений, принадлежащих определенной серии и находящихся в пределах определенного интервала дат.
Я могу создать два индекса SQL, один только для столбца series
, а другой — для столбцов series
и date
. Используя Hibernate, это будет:
@Table (indexes = {
@Index (name = "idx1", columnList = "series"),
@Index (name = "idx2", columnList = "series, date")
})
У меня вопрос: быстрее ли выполняется поиск, если я создаю оба этих индекса, или это то же самое, если я создаю только один такой индекс:
@Table (indexes = {
@Index (name = "idx", columnList = "series, date")
})