mmofacts.com

Schlüssel

gepostet vor 18 Jahre, 11 Monate von Balduran
Ich hab momentan ein paar Tabellen die mir probleme bereiten... Tabellen in denen die Bauaufträgt stehen oder Nachrichten:
auf der Spalte ID is immer auto increment+primärschlüssel..
aber was is nur wenn jemand diese Zeile löscht (nachricht löschen) bzw. der bauauftrag fertig is und somit der eintrag entfernt wird..
ich habe da bei denen Tabellen immer mehr überhang..
wie kann man das prob lösen??
gepostet vor 18 Jahre, 11 Monate von BuschnicK
Da brauchst du dich bei auto_increments gar nicht drum kümmern - deine DB regelt das für dich. Mal abgesehen davon dürften das 4 Byte IDs sein - und 4 Mrd Einträge musst du erstmal gehabt haben ;-)

mfG,
Sören
gepostet vor 18 Jahre, 11 Monate von Klaus
die ID wird immer um eins erhöht bei einem neuem Auftrag. Wenn man dann einen Entrag löscht entsteht eine Lücke.
Der Überhang (Fragmentierung) kommt vom ständigen löschen und neuschreiben, da hilft das optimieren.
gepostet vor 18 Jahre, 11 Monate von Kampfhoernchen
Guckst du hier und hier.

Edit:
Das ganze per Cron mind. 1 mal täglich!
gepostet vor 18 Jahre, 11 Monate von crawling
dem ist nichts mehr hinzuzufügen, hatten auch das Problem von Überhängen, haben einen Cron eingerichtet, danach war unser größtes Problem, die Zeit mit nichts tun totzuschlagen
gepostet vor 18 Jahre, 11 Monate von BuschnicK
Was heisst denn "Probleme mir Überhängen"? Was wird denn problematisch? Nach ein paar Lösch Operationen fragmentiert die Id und man hat "Löcher", ok, soweit kann ich folgen. Aber in wie weit ist das ein Problem?

mfG,
Sören
gepostet vor 18 Jahre, 11 Monate von sammy
Das Problem ist
1. das die Datendateien fragmentieren. Du hast überall "Löcher". Ist so, wie bei einer Festplatte auf der du ständig Dateien schreibst und löscht. Wenn du dann mal ein Defragmentiertool drüber laufen läßt, werden die Daten "zusammengeschoben" und verbrauchen im Endeffekt weniger Platz. Dies ist bei Datenbanken genauso.
2. das irgendwann der Maximalwert erreicht ist, ich weiss nicht wie Mysql das dann handelt
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
Mit OPTIMIZE TABLE kannst du die Löcher schließen.
gepostet vor 18 Jahre, 11 Monate von knalli
Naja.. bezgl Maximalwert: Mysql wird dann einen Fehler produzieren

Alernativ mal einen kleinen Integerdatentyp als AutoInc anlegen, und dann mal kurz per ner Schleife auffüllen oder AutoIncwert manuell hochsetzen. Dann sieht man, was passiert.

Man muss sich halt immer auch die Anwendung vor Augen halten - dann kann man vernünftig dimensionieren.
gepostet vor 18 Jahre, 11 Monate von Balduran
besten dank
werd dann wohl ma nen Cron einrichten

Auf diese Diskussion antworten