UUID(正確にはあなたのケースではありません)で列を挿入して、@ Dennisの回答に追加した場合(まだコメントできません)、gen_random_uuid()を使用するよりもアドバイスしてください(PG 9.4とpgcryptoモジュールが必要です)は(aロット)uuid_generate_v4()より速い
=# explain analyze select uuid_generate_v4(),* from generate_series(1,10000);
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------
Function Scan on generate_series (cost=0.00..12.50 rows=1000 width=4) (actual time=11.674..10304.959 rows=10000 loops=1)
Planning time: 0.157 ms
Execution time: 13353.098 ms
(3 filas)
対
=# explain analyze select gen_random_uuid(),* from generate_series(1,10000);
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------
Function Scan on generate_series (cost=0.00..12.50 rows=1000 width=4) (actual time=252.274..418.137 rows=10000 loops=1)
Planning time: 0.064 ms
Execution time: 503.818 ms
(3 filas)
また、それはそれを行うための推奨される公式の方法です
注意
ランダムに生成された(バージョン4)UUIDのみが必要な場合は、代わりにpgcryptoモジュールのgen_random_uuid()関数の使用を検討してください。
これにより、370万行の挿入時間が約2時間から約10分に短縮されました。