Производительность поиска по значению столбца в PostgreSQL - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть таблица с 4000 строк.Эта таблица имеет столбец с именем «тип».Запрос

SELECT DISTINCT type FROM table

показывает 14 строк.

В ближайшее время таблица вырастет примерно до 10 миллионов строк, и я не знаю, есть ли отдельный «тип»значения останутся 14 или увеличатся.

Имеет ли смысл создавать другую таблицу с именем "types" и делать столбец "type_id" в моей главной таблице вместо строки "type"?В этом случае мне придется вставлять новую строку в таблицу типов каждый раз, когда я встречаюсь с новым значением.

Или достаточно просто добавить хеш-индекс для моего столбца типа, а затем выполнить поиск с помощью

SELECT * FROM table WHERE table.type IN('value1', 'value2', 'value3')

?

1 Ответ

0 голосов
/ 29 сентября 2018

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

  • Код
  • Имя
  • Описание
  • Дата создания
  • Создано

Кроме того, это сделает любой запрос, чтобы получить список типов (скажем, для приложения) быстрее.Это также обеспечит согласованность типов.Это особенно важно, если они являются строками - которые могут быть написаны с ошибками, иметь скрытые символы или просто размножаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...