zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

关于 JPA PostgreSQL SERIAL BIGSERIAL 中使用 GenerationType.IDENTITY 批处理失效

postgresql 关于 失效 批处理 jpa identity serial 使用
2023-09-27 14:21:41 时间
https://vladmihalcea.com/postgresql-serial-column-hibernate-identity/

Although convenient, and even suggested in many PostgreSQL book, the SERIAL and BIGSERIAL column types are not a very good choice when using JPA and Hibernate. Using a SEQUENCE generator is a better alternative since the identifier can be generated prior to executing the INSERT statement.

Behind the scenes, the SERIAL and BIGSERIAL column types use a database sequence anyway, so the only difference is that the SEQUENCE generator calls the sequence is a separate database roundtrip. However, this can also be optimized with the pooled and pooled-lo optimizers.

If the database server is close to the application servers and networking is fast, the extra database roundtrip is not going to be a performance bottleneck. For all these reasons, you should prefer using the SEQUENCE generator over IDENTITY no matter if you use PostgreSQL, Oracle or SQL Server.

 

REFER:

Why To Avoid PostgreSQL (BIG)SERIAL In Batching Inserts Via Hibernate

https://github.com/AnghelLeonard/Hibernate-SpringBoot/tree/master/HibernateSpringBootBatchingAndSerial

https://github.com/AnghelLeonard/Hibernate-SpringBoot/tree/master/HibernateSpringBootBatchInsertsJpaRepository

https://github.com/AnghelLeonard/Hibernate-SpringBoot/tree/master/HibernateSpringBootBatchInsertsEntityManagerBatchPerTransaction

https://www.baeldung.com/jpa-hibernate-batch-insert-update

https://jdbc.postgresql.org/documentation/94/connect.html

https://vladmihalcea.com/9-postgresql-high-performance-performance-tips/

PostgreSQL batch insert - jdbc reWriteBatchedInserts 批量写入 (copy,insert,begin commit,group commit)

https://github.com/digoal/blog/blob/master/201910/20191030_01.md

https://github.com/aruis/mysql_vs_postgresql