У меня есть таблица с около 60 млн записей, и потенциально она скоро вырастет до ~ 500 млн (потом будет медленно расти). В таблице есть столбец, допустим категория. Общее количество категорий составляет около 20 тысяч и растет очень медленно и время от времени. Записи распределены по категориям неравномерно, есть категории, которые охватывают 5% всех записей, в то время как другие категории представлены лишь очень небольшой долей записей.
У меня есть ряд запросов, которые работают только с одной или несколькими категориями (используйте условия =
или IN
/ANY
), и я хочу оптимизировать производительность этих запросов.
- Учитывая малоизбирательный характер данных в столбце, какой тип индекса Postgres будет более выгодным: HASH или B-TREE?
- Есть ли другие способы оптимизировать производительность этих запросов?