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

Tại sao không sử dụng thời gian tạo bản ghi làm khóa chính?

Câu trả lời chung là dữ liệu của bạn có thể thay đổi (trong đó id vô nghĩa sẽ không bao giờ xảy ra) ... điều gì sẽ xảy ra khi bạn nhận ra rằng bạn đang lưu trữ thời gian trong vùng cục bộ và DST bắt đầu hoạt động? Nếu bạn muốn lưu trữ theo UTC và / hoặc theo một múi giờ cụ thể? Để biết thêm về việc cân nhắc đặt hàng, hãy xem câu trả lời của wcoenen .

Nếu bạn bắt đầu tạo 1000 hàng trong một giây và bạn đang phải xáo trộn dữ liệu để "làm cho nó hoạt động" làm điều gì đó mà bạn không mong muốn. Có lẽ bạn thêm một cột định vị sẽ làm cho chỉ mục của bạn lớn hơn và chậm hơn ...

Và sau đó khi dự án của bạn trở nên cực kỳ phổ biến và mọi người bắt đầu cố gắng chạy các báo cáo / truy vấn và "nó đang sử dụng ngày làm PK ??? !!!"

Cũng nên xem xét sử dụng cơ sở dữ liệu cho phép lập chỉ mục nhóm trên các cột không phải cột chính.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để sử dụng ngay bây giờ () trong Doctrine 2 DQL?

  2. Vấn đề với Tomcat gộp chung với Hibernate. Thời gian chờ của MySQL

  3. Trường MySQL đơn với các giá trị được phân tách bằng dấu phẩy

  4. Không thể khởi động Mysql trên Mac

  5. MySQL:Chỉ mục tối ưu cho giữa các truy vấn