Điều đó phụ thuộc vào những gì bạn đang làm:
- Nếu tốc độ là mối quan tâm hàng đầu thì
int
đơn giản là cũ có lẽ đủ lớn. - Nếu bạn thực sự sẽ có hơn 2 tỷ bản ghi (với B;)), thì hãy sử dụng
bigint
hoặc một hướng dẫn tuần tự. - Nếu bạn cần có thể dễ dàng đồng bộ hóa với các bản ghi được tạo từ xa, thì
Guid
thực sự tuyệt vời.
Cập nhật
Một số ghi chú bổ sung (ít rõ ràng hơn) về Guids:
- Chúng có thể khó lập chỉ mục và điều đó ảnh hưởng đến cốt lõi của hiệu suất cơ sở dữ liệu
- Bạn có thể sử dụng các lệnh tuần tự để lấy lại một số hiệu suất lập chỉ mục, nhưng hãy loại bỏ một số tính ngẫu nhiên được sử dụng ở điểm hai.
- Khó gỡ lỗi bằng tay các trình hướng dẫn (
where id='xxx-xxx-xxxxx'
), nhưng bạn cũng nhận được một số trong số đó thông qua các guids tuần tự (where id='xxx-xxx' + '123'
). - Vì lý do tương tự, Guids có thể khiến các cuộc tấn công bảo mật dựa trên ID trở nên khó khăn hơn - nhưng không phải là không thể. (Bạn không thể chỉ nhập
'http://example.com?userid=xxxx'
và mong đợi nhận được kết quả cho tài khoản của người khác).