![]() |
mySQL-Schlüsselindex numerisch schneller, als alphanumerisch
Hallo!
Ich überlege gerade, ob ein numerischer Schlüssel in einer mySQL-Tabelle besser ist, als ein alphanumerischer? Ich habe eine Tabelle:
Delphi-Quellcode:
Kann jemand etwas darüber aussagen?
create table EMail
(MailID int, From varchar(255) not null, To varchar(255), Subject varchar(255), SendingTime DateTime, MsgText varchar(4096), MyID ->varchar(255) oder integer? <- not null, primary key (MailID)) Wo ist eigentlich der Unterschied zwischen den Typen "char" und "varchar"? Vielen Dank im Voraus, Steffen |
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Zitat:
Ein CHAR(n) nimmt immer n+1 Bytes ein, während ein VARCHAR(n) bis zu n+1 Bytes einnimmt oder weniger, wenn nicht alle Zeichen belegt sind. |
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Danke!
Ich habe gerade noch diese datailiertere Erklärung gefunden: Zitat:
|
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Ein Primärschlüssel sollte eigentlich immer numerisch sein.
Ich habe keine Ahnung wie das unter mySQL läuft, aber in Oracle definiere ich eine Sequence, die immer fleißig um 1 erhöht wird. Um das ganze alphanumerisch zu lösen wäre ein viel höherer Aufwand nötig -> ars**langsam ... Willst du, dass ein Feld oder eine Kombination mehrerer Felder eindeutig ist, solltest du eine Unique-constraint (keine Ahnung, wie das bei mySQL heißt) anlegen. |
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Unique-Constraints gibt es in mySQL ebenso, wie in Oracle.
|
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Integer ist der mit Abstand schnellstmögliche Index (alleine schon von der Prozessorverarbeitung her).
Und wenn jemand meint, er müsste aber Zeichenfogen im Index haben, genauer gesagt, in der Artikelnummer (so wie die blöde Textilindustrie), weil er sonst nicht alles unterscheiden kann, bzw. weil bei ihm die Datenmenge sooo riesig ist, dass das sonst schnell an seine Grenzen stösst, dem sei gesagt, dass bei Integer (ist in der Regel Int32) ein 32-bit Integer zur Verfügung steht, also 2 hoch 32 verschiedene Zahlen, das sind etwa 4,3 Billionen. Jaaa, wird derjenige jetzt wohl sagen, bei uns kommen aber soo viele Datensätze rein... Wenn jede Sekunde 1 Datensatz hinzukomt, dann reicht es über 100 Jahre! Falls jemand dann rechthaberisch stottert "Jaa, aber es is wirklich irrsinnig viel bei uns." Dann nehmt einfach ein Int64 (64bit Integer) und sagt ihm: Falls Sie jede Sekunde 5 Millionen Datensätze hinzufügen, dann rufen Sie mich in 100 Jahren nochmal an, dann haben wir noch 16 Jahre Zeit um zu überlegen, was wir löschen können... Noch Fragen Kienzle? |
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Zitat:
|
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Zitat:
Auf die Paar kommt nun wirklich nicht mehr an! :mrgreen: :wall: |
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Jou stimmt, lieber Milli Arden als gar keine Arden.
|
Re: mySQL-Schlüsselindex numerisch schneller, als alphanumer
Das erinnert mich an einen Film... "Mach blöß keine 0 zu viel auf die Überweisung, das wird teuer!"
"OK, 1, 2, 3, ... 7, 8!" :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz