หากคุณมีความสุขที่จะใส่ colums ด้วย UUIDs (ซึ่งไม่ใช่กรณีของคุณอย่างแน่นอน ) และเพื่อเพิ่ม @Dennis answer (ฉันยังไม่สามารถแสดงความคิดเห็นได้) ให้คำแนะนำมากกว่าการใช้ gen_random_uuid () (ต้องใช้ PG 9.4 และโมดูล pgcrypto) คือ ( มาก) เร็วกว่า 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)
VS
=# 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)
นอกจากนี้ยังเป็นวิธีการแนะนำอย่างเป็นทางการที่จะทำ
บันทึก
หากคุณต้องการเพียง UUID ที่สร้างแบบสุ่มเท่านั้นให้พิจารณาใช้ฟังก์ชัน gen_random_uuid () จากโมดูล pgcrypto แทน
เวลาแทรกนี้ลดลงจาก ~ 2 ชั่วโมงถึง ~ 10 นาทีสำหรับแถว 3.7M