Krautkanal.com

Veröffentlicht am 2015-01-19 15:02:59 in /prog/

/prog/ 6419: Lange Namen

doooon Avatar
doooon:#6419

Bernd, welche Bedeutung hat die Schlüssellänge für die Leistung von Datenbanken?

Dieser Bernd hat seine SQL-Datensätze bisher über nicht-natürliche Primär-Schlüssel (eine Sequenz) organisiert. Beim Rumschieben der Daten ist das jedoch etwas unangenehm, da die Relationen ja erhalten bleiben müssen.
Bernd hat aber auch für jeden Datensatz eine (ausreichend) einzigartige SHA256-Summe und die würde sich also auch als Primärschlüssel eignen. Nur sind das dann eben 64 Zeichen statt der bigint der Sequenz.
Meinst du das würde einen nennenswerten Unterschied für die Leistung beziehungsweise den Ressourcenaufwand ergeben? Die aktuell verwendete PostgreSQL nimmt sich jetzt schon etwas zu viel heraus, hat aber sicher noch Optimierungs-Potential.

Ich kööönnte natürlich auch anfangen die Schlüssel klein zu schnippeln..... ab 9 Zeichen waren in meinen 150000 Sätzen keine Kollisionen mehr, also wäre 16 vielleicht eine gute Zahl......?! :3

okcoker Avatar
okcoker:#6420

UUID?
http://de.wikipedia.org/wiki/Universally_Unique_Identifier

oskamaya Avatar
oskamaya:#6423

>hash über den Datensatz
>Ändere das Geschlecht einer Person
>hash ändert sich
>alle Relationen im Anus

Ich halte das für keine gute Idee.

>PostgreSQL

So erstelle er vernünftige Indices und benutze den Staubsauger (vakuum analyze).

uxdiogenes Avatar
uxdiogenes:#6425

>>6423
>Ändere das Geschlecht einer Person
Namen ändern sich öfter. Z.B. bei Heirat.

Datenbankoptimierung würde ich nicht über Primärschlüssel machen.