1UnitedPower: Zwischendrin Truncate table ?

Beitrag lesen

Meine Herren!

das mit der UUID bzw. beim SQL Server die GUID habe ich auch schon gelesen. Aber hier gehen die Meinungen ja sehr auseinander ob sinnvoll oder nicht. Man bräuchte ja mindestens einen Char() Spalte mit 32 Länge.

Speicher ist inzwischen so günstig, dass man sich keine Gedanken mehr um den Speicherbefarf einer ID machen muss, wenn man nicht gerade im Mikrocontroller-Bereich arbeitet. Natürlich haben beide Varianten ihre Vor- und Nachteile. In den meisten Fällen sind autoinkrementelle IDs allein wegen ihrer Lesbarkeit die bessere Wahl.

Und dann wäre es auch nur sinnvoll wenn diese ID inkrementell fortlaufend ist oder?

Nein. Es gibt auch andere Wege Eindeutigkeit zu »garantieren«. Jede Garantie wird dabei durch ihren natürlichen Wertebereich beschränkt. Zur Veranschaulichung: Die Zeit, wenn man die Genauigkeit nur hoch genug wählt, taugt (fast) auch als ID.

Irgend wann wäre doch auch der BIGINT nicht mehr ausreichend. (OK, vielleicht bin ich da vorher in Rente :-) )

Ja, und bevor das passiert ist die Menschheit übrigens auch ausgestorben und es gibt keinen Strom mehr und der Server ist sowieso schon lange ausgefallen.

Bei 150.000 Zeile pro Tag, kann das Programm noch mehr als 74 Erdalter laufen.
(18446744073709551615 / ( 150000 * 365 * 4550000000  )

Ich hatte das schon mal in einem anderen Thread gefragt.
Wie machen das die großen der Branche, wie Amazon, ebay oder sonstige? Wenn eine Tabelle voll läuft (ich rede jetzt nur rein vom ID Wert) dann kann man ja kein Insert mehr machen.

Dann wählt man eben einen größeren Wertebereich. Aber wie gesagt, können die gängigen Bereiche schon einiges leisten.

Und nochmals: Angenommen die Anwendung bräuchte die Auto_increment Spalte bzw. die ID gar nicht. Könnte man dann nicht sie Spalte ganz weglassen? Oder ist eine Tabelle ohne Primärschlüssel und nur mit einem Index nicht so gut?

Klar kannst du Spalte dann auch gleich weglassen.

--
“All right, then, I'll go to hell.” – Huck Finn