Google Cloud Spanner recommends chống lại việc sử dụng các số nguyên tăng đơn điệu cho khóa chính. Điều này làm cho một cảm giác hoàn hảo cho các bảng cấp cao nhất vì nó sẽ tạo ra các điểm nóng. Nhưng những gì về bàn xen kẽ? Họ sẽ được lưu trữ trên cùng một nút anyway. Chúng cũng được lưu giữ theo thứ tự sắp xếp để sử dụng UUID hoặc một số ID ngẫu nhiên khác có vẻ tối ưu, đặc biệt nếu chúng cũng sẽ được truy lục theo thứ tự sắp xếp.Autoincrement trong Google Cloud Spanner
Đang đọc id tối đa và lưu trữ maxId + 1 cho hàng mới là giải pháp đúng ở đây?
Cảm ơn câu trả lời. Cách tốt nhất để sử dụng các con số ngày càng tăng trong các bảng xen kẽ là gì? Có đơn giản không: max = read ("SELECT MAX (SubId) TỪ SubTable WHERE ParentId = ..."); write ("INSERT INTO SubTable (SubId, ...) VALUES (" + (max + 1) + ", ...)") ? –
Nói chung, bạn vẫn nên tránh và sử dụng UUID với một cột cho các id tuần tự nếu cần. Có rất nhiều nguy hiểm ẩn nấp ở đó, chẳng hạn như đảm bảo bạn làm điều đó trong một giao dịch, điều gì xảy ra nếu giá trị gần đây nhất (và tối đa) bị xóa - bạn có thể sử dụng lại nó hay không ?. Có thể tốt hơn khi sử dụng một bảng khác để lưu trữ bộ đếm và đảm bảo bạn có các giao dịch thích hợp. –