mysql: autoinkrement verfeinern...
-
Hi,
ich hab in meiner mysql datenbank 2 tabellen und eine davon hat als index einen autoincrement der außerdem unique ist.
Jetzt hab ich mir die frage gestellt wie sagt man der datenbank, das wenn zeilen gelöscht werden aus den tabellen die freigewordenen inizes wiederverwendet werden können? Denn sonst wird doch der index irgendwann man an das limit einer integer zahl stoßen.
mfg
-
Abgesehen davon das eine AutiInc immer UNIQUE ist geht das was Du willst nicht.
Ich dene aber das du nicht soviele Datensätze haben wirst das es nicht ausreicht.
Solltest Du sehr oft etwas löschen dann musst Du dein Design überdenken und eben keine Autowert nehmen.
Dieser Wert ist auch nur dann Sinnvoll wenn man sonst keine eindeutigen Datensatzbezeichner hat.
z.B. Vorname, Nachname,Geburtsdatum,Adresse, PLZ,Land, etc.
Diese zusammen sollten eindeutig sein.
Da brauchst du keine ID und wenn ein Index drauf ist läuft die suche auch schneller.
Dies ist aber keine allgemeine Aussage sonderen kommt immer darauf an was man machen will.
Macht man viele INSERTS dann muss man sich die Frage stellen ob eine INDEX wirklich gut ist den er muss bei jedem INSERT neu berechnet werden.
Dafür geht aber die suche nach Daten schneller.
SChau dir aber den Wertebereich eines UNSIGNED INT bei MySQl an und du wirst festellen das er sehr lange reicht.
Ist eine 32 BIT INT mit 10 stellen.
-
naja ich hab den index schon recht schnellhochgejagt, das limit ist zwar bei weitem noch nicht in sicht aber ich wollt ja vorbauen
Leider brauch ich dieses autoinkrement da ich die bestehende datenbank nicht beliebig umbauen kann und somit diverse unzulänglichkeiten überbrückt werden müssen.
-
Also bevor du den Speicher eines Autoincrements verbraucht hast kannst du mind. 2^31 bzw. bis zu 2^32(4 294 967 296) Einträge haben
Das sollte an sich keine weiteren Problem machen. Das einzige was du mal machen kannst ist deine Indexliste zu "optimieren":
-
00Albert schrieb:
naja ich hab den index schon recht schnellhochgejagt, das limit ist zwar bei weitem noch nicht in sicht aber ich wollt ja vorbauen
Leider brauch ich dieses autoinkrement da ich die bestehende datenbank nicht beliebig umbauen kann und somit diverse unzulänglichkeiten überbrückt werden müssen.
Wenn du dir wirklich Kapazitätssorgen machst, dann beantrage halt, das Teil auf bigint zu ändern; ist zwar auch utopisch, aber wem's hilft ...