Steffen: MySQL Performance-Problem bei Abfrage v. > 30 Feldern

Beitrag lesen

Dumm nur, dass MySQL mich nicht einfach in Char ändern lässt, bzw. automatisch wieder in
Varchar ändert. Muss morgen mal die Tabelle neu anlegen und ausprobieren wieviel das bringt.
Sobald Du nur eine VARCHAR-Spalte anlegst, wandelt mySQL alle CHAR-Spalten größer 4 Zeichen in VARCHAR-Spalten um.

Ja, ich habe gestern einen Artikel zum Thema gefunden, da war das auch so erklärt.

  • Weil es keine Performance mit Spalten variabler Länge verloren geht, werden die Spalten
    fester Länge in Spalten variabler Länge umgewandelt, weil das Speichervorteile bringt.

Hmmm, also es bringt keine bessere Performance, aber Speichervorteile? In dem von mir angesprochenen Artikel stand genau das Gegenteil :-)

Du kannst nur alle Spalten in CHAR-Spalten umwandel, wenn Du es in einem Rutsch umwandelst.
ALTER TABLE tabelle MODIFY vorname CHAR(20), MODIFY nachname CHAR(20), ... usw.

Danke, das wäre meine nächste Frage gewesen :-)

Aber Antje Hofmann hat auch noch was interessanten geschrieben. Vielleicht solltest Du
über die Tabellenstruktur nachdenken...

Ja, prinzipiell hat sie nicht unrecht. Nur in diesem, meinem Fall nicht. Die Sessions werden sowieso in der Tabelle "sessions" verwaltet. Zur Session gehören noch einige weitere Felder, wie time, last_time, tracking_id, kunden_id, partner_id...
Und, nur für Besucher, die den Buchungsbereich betreten wird ein Eintrag in der Tabelle "session_data" gemacht - nicht für jeden Besucher. Ich muss diese Daten leider einige Wochen archivieren, aus Faulheit habe ich die entsprechenden Einträge einfach in der Tabelle belassen. Wir haben ne ganze Menge User, da kommt einiges zusammen, auch einfache Abfragen dauern einen Moment. Daher kam ich auf die Idee, "leere" Datensätze sofort zu löschen, da diese eben nicht archviert werden müssen....

Gar nicht so schlecht, daß ich mal wieder ins Buch geschauen habe ...

Ja, ich sollte mir mal ein vernünftiges zum Thema MySQL kaufen, irgendeinen Vorschlag?

Danke an alle für die Hilfe!

Ciao,

Steffen