Trang chủ Bài viết Cơ sở dữ liệu UUIDv4 và UUIDv7 trên Postgres: cái giá của khóa chính ngẫu nhiên
Cơ sở dữ liệu 06/11/2026 8 lượt xem

UUIDv4 và UUIDv7 trên Postgres: cái giá của khóa chính ngẫu nhiên

UUIDv4 và UUIDv7 trên Postgres: cái giá của khóa chính ngẫu nhiên

Cùng một bảng, cùng một luồng insert, ba loại khóa chính khác nhau trên Postgres 18. Kết quả thử nghiệm cho thấy ở mức 100 triệu dòng, UUIDv4 chỉ đạt tốc độ chèn bằng 0,62 đến 0,69 lần so với một khóa có thứ tự trên cùng máy chủ, đồng thời ghi lượng WAL mỗi dòng gấp 1,5 đến 1,9 lần.

Bối cảnh phép so sánh

Phép thử giữ nguyên bảng và luồng insert, chỉ thay đổi kiểu khóa chính. Ba phương án được đặt cạnh nhau trên Postgres 18 để đo hai chỉ số: tốc độ chèn và lượng WAL phát sinh trên mỗi dòng. Cách bố trí này giúp cô lập tác động của việc chọn khóa chính, thay vì trộn lẫn với các yếu tố khác của hệ thống.

Con số ở mức 100 triệu dòng

  • Tốc độ chèn của UUIDv4 chỉ bằng 0,62 đến 0,69 lần khóa có thứ tự.
  • Lượng WAL ghi trên mỗi dòng của UUIDv4 cao gấp 1,5 đến 1,9 lần.

Đây là hai hệ quả trực tiếp và dễ thấy nhất khi dùng khóa chính ngẫu nhiên hoàn toàn thay cho khóa có thứ tự.

Câu hỏi được đặt ra

Tác giả Nikolay Samokhvalov không chỉ nêu con số mà còn đặt vấn đề về nguồn gốc của chi phí: cái giá này bắt đầu từ đâu và được cấu thành từ những gì. Việc xác định điểm khởi phát và các thành phần cấu thành giúp người thiết kế cơ sở dữ liệu hiểu rõ hơn khi nào nên cân nhắc giữa tính ngẫu nhiên của UUIDv4 và tính có thứ tự của các lựa chọn như UUIDv7.

Nguồn: Planet PostgreSQL

Trích nguồn từ: Planet PostgreSQL

Chia sẻ:

Bài viết liên quan

Zalo