Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#27

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 14. Sep 2017, 20:12
So wie ich das in deinem Code sehe ist der Primärschlüssel ein Textfeld und speichert eine Nummer. Das ist jetzt nicht wirklich optimal, da das verwalten des Index so länger dauert, als z. B. bei einem Integer. Von den Lese/Such-Operationen mal ganz abgesehen.
Das halte ich für eine sehr gewagte Behauptung. In der Regel wirst du den Unterschied nicht mal messen können. Integer-Keys brauchen weniger Platz als String-Keys, darum geht der Vergleich ein kleines bisschen schneller, aber da sind andere Faktoren viel viel wichtiger. Je mehr Datensätze es sind und je länger der Key ist, desto mehr schlägt das zu Buche, aber ich würde sagen, da reden wir von > x Mio Datensätzen und Keylänge > 250 (wobei du da ziemlich sicher schon einen Designfehler hast).

Also: Index so bauen, wie es die Daten nahelegen + keine Kopfstände machen.
Naja, wenn im Feld tatsächlich text steht, sollte es natürlich ein Textfeld sein. Wobei es sqlite glaub ich sogar egal ist.

Tatsächlich sollte aber ein Primärschlüssel ein technischer sein, also nicht fachlich und nicht Daten enthalten, die fachlich verwendet werden. Ist also eine Auftragsnummer aus Zahlen,Tagesdatum und Bearbeiterkürzel zusammen gesetzt (und natürlich eindeutig) nehme ich sie dennoch nicht als Primärschlüssel.

Insofern ist die Behauptung von Ghostwalker nicht sonderlich gewagt, sondern entspricht mehr oder weniger der gängigen Praxis.
Gruß, Jo
  Mit Zitat antworten Zitat