Если ваши идентификаторы состоят исключительно из цифр и остаются ниже 2 ^ 63 (9223372036854780000), я предлагаю массив bigint
в качестве типа данных: bigint[]
. Это занимает 8 байт на элемент (плюс небольшие накладные расходы).
Ваш приведенный пример 283974892598353920 равен примерно 2 ^ 60 и находится в этом диапазоне.
Единственный соответствующий Postgres limit - максимальный размер поля 1 ГБ, допускающий примерно 2 ^ 60 элементов. 50000 даже не близко.
Связано:
Тем не менее, рассмотрите наборы (таблицы) вместо огромных массивов, если вы хотите выполнять какие-либо запросы к данным. Производительность ухудшается для огромных массивов.