индексы, необходимые для наследования таблиц в postgres? - PullRequest
2 голосов
/ 30 июля 2010

Это довольно простой вопрос, но я не могу найти точного ответа.

У меня есть родительская таблица в PostgreSQL, а затем несколько дочерних таблиц, которые были определены.Триггер установлен, и в дочерние таблицы вставляются данные, только если поле, скажем, поле x , соответствует определенным критериям.

Когда я запрашиваю родительскую таблицу с полем, основанным на x , PostgreSQL знает, как немедленно перейти к дочерней таблице, которая связана с этим конкретным значением x .

Учитывая все вышесказанное, мне не нужно указывать конкретный индекс в столбце x не так ли?PostgreSQL уже знает, как сортировать по нему, и, добавив индекс к родительскому элементу x , PostgreSQL, следовательно, генерирует уникальные индексы по x для каждой из новых дочерних таблиц.

Создание этого индекса немного избыточно, верно?

1 Ответ

3 голосов
/ 30 июля 2010

Создание индекса в дочерней таблице для x, если x имеет только одно значение (или очень, очень небольшое количество значений), если возможно потеря, да. Планировщик все равно будет сканировать всю таблицу.

Если x - это временная метка, и вы указываете временной интервал, который не может быть целым разделом, или если x - это другой диапазон или набор значений, индекс, скорее всего, будет выигрышным.

Редактировать: когда я говорю одно значение или диапазон значений, я имею в виду, для каждой дочерней таблицы.

...