У меня есть таблица содержит данные 10M линииPostgres порядок комбинированного индекса
CREATE TABLE log_info
(
id serial NOT NULL,
created_date date, # date in month - max 30-31 distinct value
dept_id integer, # max 50 distinct value
group_id integer, # 10000 distinct value
.......
)
Большинство запросов на основе CREATED_DATE, dept_id и GROUP_ID, поэтому я хочу, чтобы создать комбинированный индекс для 3-х полей
Я знаю, что порядок комбинированного индекса будет влиять на производительность базы данных, поэтому в моем случае, что является лучшим индексом?
CREATE INDEX log_info_index1 ON log_info USING btree (created_date, dept_id, group_id);
или
CREATE INDEX log_info_index1 ON log_info USING btree (created_date, group_id, dept_id);
Если a имеет 5 различных значений, b имеет 100 различных значений, c имеет 5000 различных значений и запрос a =? И b =? И c> = ?. Какой индекс наилучшего заказа? (a, b, c), (a, c, b), (c, b, a), .... –
Тогда '(b, a, c)'. – redneb