Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо да не използвате времето за създаване на запис като първичен ключ?

Общият отговор е, че вашите данни може да се променят (където безсмисленият идентификационен номер никога не ще се промени)... какво се случва, когато разберете, че съхранявате време в локалната зона и се задейства DST? Ако искате да съхранявате спрямо UTC и/или срещу определена часова зона? За повече съображения за поръчка вижте отговорът на wcoenen .

Ако започнете да създавате 1000 редове в секунда и трябва да се забърквате с данни, за да го „накарате да работи“, като правите нещо, за което не е предназначено. Може би бихте добавили колона за уточняване, която ще направи вашия индекс по-голям и по-бавен ...

И тогава, когато проектът ви стане мега популярен и хората започнат да се опитват да пускат отчети/заявки и „използва дата като PK???!!!“

Също така помислете за използването на база данни, която позволява клъстерни индекси на неосновни колони.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да получа последно въведен идентификатор с помощта на Hibernate

  2. Docker mysql не може да се свърже с контейнера

  3. Запитване на MySQL:Как правилно да идентифицирате и преведете разделени със запетая стойности на резултата към оригиналните понятия, използвайки CONCAT_WS и COALESCE

  4. Копиране на MySQL база данни на друга машина

  5. MySql изявление подготви не залепване