Преимущества использования последовательности в PostgreSQL для автоинкремента:
- Гибкость и контроль над генерируемыми значениями. 1 Можно начать последовательность с конкретного значения, указать шаг, отличный от 1, или решить более сложные задачи. 1
- Оптимизация для параллельного доступа. 2 Последовательности никогда не выдадут одно и то же число дважды. 2
- Возможность использовать кэш. 2 Если к последовательности обращается много параллельных SQL-запросов, это может стать узким местом, но есть опция CACHE, которая позволяет выдавать сессии с базой данных сразу несколько значений. 2
Однако у использования последовательности есть и недостаток: это единый объект в одной базе данных, поэтому при шардинге, когда данные распределяются по нескольким базам данных, использовать последовательность нельзя. 2