Cheatah: (MySQL) Index auf BLOBs arbeitet falsch(?)

Beitrag lesen

Hi Michael,

Welchen Tabellentyp verwendest Du?

den, der bei einem CREATE TABLE entsteht... bzw. wen PHPMyAdmin es anders macht, dann eben den.

Sorry, mir war nicht bewusst, dass MySQL unterschiedliche Tabellentypen kennt. Wie finde ich das ggf. heraus?

Was hältst Du davon, die IP zu konvertieren und als unsigned 32 bit integer zu speichern?

Abstand. Ich müsste ständig hin und her konvertieren, obwohl ich grundsätzlich nur den IP-String brauche. Mit VARCHAR statt *TEXT funktioniert der Index ja auch, es gibt also keinen akuten Handlungsbedarf.

Das müßte den Indexzugriff beschleunigen und zudem Platz sparen (vor allem im Index - in der Tabelle ist der Unterschied eher vernachlässigbar).

Ja, das glaube ich Dir; nur ist Geschwindigkeit bei MySQL ja nicht gerade das primäre Problem ;-) und Speicherplatz habe ich prinzipiell genug (für meine Zwecke zumindest). Die Idee halte ich aber im Hinterkopf, falls ich das ganze ausweiten möchte, danke dafür.

Ein EXPLAIN auf das Statement verriet mir, [...]
... das wäre meine nächste Frage gewesen ...

Sorry, dass ich sie zu früh beantwortet habe... ich schalte meine Vorahnungen mal aus *klick* ;-)

Nun ja, ich sollte noch erwähnen, dass der Inhalt der Spalte "ip" meist
auf "127.0.0.1" lautete und damit die Länge 15 nicht erreichte.
Wenn ich "meist" wörtlich nehmen soll, dann ist der Index so nicht sehr projektiv. (Aber wahrscheinlich wird er das bei richtigen Produktionsdaten sein.)

Ja, genau - in der Entwicklungsphase sind die Daten halt nicht besonders repräsentativ...

In jedem Fall ist Deine Anordnung der beiden Felder im Index m. E. so richtig herum ...

Danke :-)

Oder ist das ein (mittlerweile gefixter) Bug?
Es könnte sein, daß "3.23" dafür eine zu ungenaue Angabe ist.
(Ich verwende 3.23.38, aktuell ist wohl 3.23.47.)

Ich schau mal nach, was es genau ist.

(der sich gerade mit etwas vage Ähnlichem herumschlägt: Ein CREATE FULLTEXT INDEX auf etwa 100 MB Textdaten erzeugt nach knapp 2 Stunden den anscheinend richtigen Indexbaum [dessen Größe mir bekannt ist], aber statt diesen und die temporäre Version der Tabelle dann auf den endgültigen Dateinamen umzubenennen, beschließt der mySQL-daemon, eine Endlosschleife mit 100% CPU-Auslastung lustiger zu finden ...)

Cool! MySQL ist witzig. Warum benutze ich eigentlich nicht 'ne _richtige_ Datenbank? :-)

Cheatah