Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự khác biệt giữa INT và UUID trong MySQL

UUID trả về số nhận dạng duy nhất phổ biến (Hopefuly cũng là duy nhất nếu được nhập vào DB khác).

Để trích dẫn từ MySQL doc (tôi nhấn mạnh):

Mặt khác, chỉ đơn giản là INT khóa id chính (ví dụ: AUTO_INCREMENT ) sẽ trả về một số nguyên duy nhất cho bảng DB và DB cụ thể, nhưng không phải là duy nhất trên toàn cầu (vì vậy nếu được nhập vào một DB khác, rất có thể sẽ có xung đột khóa chính).

Về mặt hiệu suất, sẽ không có bất kỳ sự khác biệt đáng chú ý nào khi sử dụng auto-increment qua UUID . Hầu hết các bài đăng (bao gồm một số của các tác giả của trang web này), đều nêu như vậy. Tất nhiên UUID có thể mất thêm một chút thời gian (và không gian), nhưng đây không phải là điểm nghẽn hiệu suất cho hầu hết (nếu không phải tất cả) trường hợp. Có một cột là Primary Key nên làm cho cả hai lựa chọn bằng wrt với hiệu suất. Xem tài liệu tham khảo bên dưới:

  1. Tới UUID hoặc không thành UUID ?
  2. Thần thoại, GUID so với Autoincrement
  3. Hiệu suất:UUID so với auto-increment trong cakephp-mysql
  4. UUID hiệu suất trong MySQL?
  5. Khóa chính:ID s so với GUID s (mã hóa kinh dị)

(UUID so với auto-increment kết quả hiệu suất, được điều chỉnh từ Thần thoại, GUID so với Autoincrement )

UUID ưu / nhược điểm (phỏng theo Khóa chính:ID s so với GUID s )

Lưu ý

Tôi sẽ đọc kỹ các tài liệu tham khảo được đề cập và quyết định có sử dụng UUID hay không hoặc không tùy thuộc vào trường hợp sử dụng của tôi. Điều đó nói rằng, trong nhiều trường hợp UUID s thực sự sẽ thích hợp hơn. Ví dụ, người ta có thể tạo UUID s mà hoàn toàn không sử dụng / truy cập cơ sở dữ liệu, hoặc thậm chí sử dụng UUID s đã được tính toán trước và / hoặc được lưu trữ ở một nơi khác. Ngoài ra, bạn có thể dễ dàng tổng quát hóa / cập nhật lược đồ cơ sở dữ liệu và / hoặc lược đồ phân cụm của mình mà không phải lo lắng về ID phá vỡ và gây ra xung đột.

Về các xung đột có thể xảy ra, ví dụ:sử dụng v4 UUIDS (ngẫu nhiên), xác suất để tìm thấy một bản sao trong vòng 103 nghìn tỷ phiên bản-4 UUID là một phần tỷ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn mysql đơn giản để kiểm tra xem hàng có tồn tại hay không

  2. Sắp xếp SQL không theo nhóm theo câu lệnh, luôn sử dụng khóa chính

  3. Nối chuỗi với giá trị trường trong MySQL

  4. Sao lưu cơ sở dữ liệu MySQL với CodeIgniter

  5. Một cách tốt hơn để thực thi nhiều lệnh MySQL bằng cách sử dụng tập lệnh shell