Nếu bạn vui lòng chèn colums bằng UUID (không chính xác là trường hợp của bạn) và để thêm vào câu trả lời @Dennis (tôi chưa thể nhận xét), hãy khuyên bạn nên sử dụng gen_random_uuid () (yêu cầu mô-đun PG 9.4 và pgcrypto) là (a nhiều) nhanh hơn 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)
đấu với
=# 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)
Ngoài ra, đó là cách chính thức được đề xuất để làm điều đó
Ghi chú
Nếu bạn chỉ cần UUID được tạo ngẫu nhiên (phiên bản 4), hãy xem xét sử dụng hàm gen_random_uuid () từ mô-đun pgcrypto thay thế.
Thời gian chèn này giảm từ ~ 2 giờ xuống ~ 10 phút cho 3,7M hàng.