Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego nie wykorzystać czasu utworzenia rekordu jako klucza podstawowego?

Ogólna odpowiedź brzmi, że twoje dane mogą się zmienić (gdzie nic nie znaczące id nigdy się nie zmieni)… co się stanie, gdy zdasz sobie sprawę, że przechowujesz czas w strefie lokalnej i nadejdzie czas letni? Jeśli chcesz przechowywać według czasu UTC i/lub określonej strefy czasowej? Aby uzyskać więcej informacji na temat zamawiania, zobacz odpowiedź wcoenena .

Jeśli zaczniesz tworzyć tysiące wierszy na sekundę i będziesz musiał zadzierać z danymi, aby „działało”, robiąc coś, do czego nie było przeznaczone. Być może dodasz kolumnę uściślającą, która sprawi, że Twój indeks będzie większy i wolniejszy...

A potem, kiedy Twój projekt stanie się mega popularny i ludzie zaczną generować raporty/zapytania i „użyje daty jako PK???!!!”

Rozważ również użycie bazy danych, która umożliwia indeksy klastrowe w kolumnach innych niż podstawowe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Glassfish nie tworzy zasobów JDBC

  2. varchar automatycznego przyrostu w MySQL

  3. CakePHP 3 defaultConnectionName w modelu wtyczki nie działa

  4. MySQL Porównaj bazy danych

  5. Jak ważne są tabele przeglądowe?