web-dev-qa-db-ja.com

postgresql bigserialまたはjpaを使用したシーケンス

私はa Java jpaを使用する開発者です。エンティティのインデックスを定義する前に、どちらがより高速で使いやすいかを知りたいです。

4
OJVM

bigserialは、シーケンスを作成するための省略形です。したがって、入力にかかる時間を含めると、bigserialの「パフォーマンス」が向上します。

_CREATE TABLE tablename (
    colname BIGSERIAL
);
_

等しい

_CREATE SEQUENCE tablename_colname_seq;

CREATE TABLE tablename (
    colname biginteger DEFAULT nextval('tablename_colname_seq') NOT NULL
);
_

また、これらが主キーである場合、それらにはすでにインデックスが付けられているため、それらにインデックスを付ける必要はありません(ただし、外部キー列は自動的にインデックス付けされません、FYI)。

JPAの場合、PostgreSQLシリアル/ビッグシリアル列には@GeneratedValue(strategy=GenerationType.IDENTITY)を使用する必要があります。

9
Neil McGuigan