Подскажите, пожалуйста.
Нужно хранить в колонке много (20млн) строк, символов по ~40.
А затем искать есть-ли уже такая строка (целиком) или нет.
Вопрос - имеет-ли смысл сделать дополнительную колонку hash(от хранимой строки), поставить индекс на неё и искать по ней, или смысла нет и просто делаем индекс на всю строку?
Смысл - в размере индекса. В моем понимании, индекс на всю строку а) не нужен, т.к. не полнотекстовый поиск и даже не поиск по вхождениям подстрок, б) он будет больше, чем индекс по хэшу.
А "поиски" в случайном порядке происходят (обратная ситуация — это когда последовательно ищутся близкие по порядку строки — сначала "add", потом "all", потом "any" и т.п.)?
Если в случайном, и версия PostgreSQL >= 11 — посмотрите на hash index, в самом деле.