Hallo zusammen,
Versuche so viel INT-Spalten wie möglich zu verwenden. Aber wie ich sehe, ist das bei Dir nicht so möglich.
"so viel wie möglich" bringt wenig, weil eine varchar-spalte ausreicht, um den Performance-Vorteil zunichte zu machen:
"You will get dynamic row length as soon as you are using a single VARCHAR or BLOB column." (MySQL-Manual)
Nur wenn alle Spalten feste Länge haben, gibt das einen Performancevorteil (weil MySQL dann sofort weiß, wo im isam-File Feld x von Datensatz y steht).
Normalerweise nehme ich persönlich immer char, wenn ich keine blobs/texts in der tabelle habe, weil mir dann das bißchen Speicherplatz, daß ich durch die varchars gewinne, den performancenachteil nicht wert ist (bei 40.000 Datensätzen mit einer
geschätzen Länge von 2k per Datensatz - ich habs' nicht zusammengerechnet - ergeben sich auch nur 80mb Datenbankgröße, wenn man stattdessen chars verwendet). Leider ist in der Tabellendefinition ein blob :-(, aber vielleicht reichen da ja auch 255 Zeichen?
Ansonsten - Steffen, hast Du Keys für die Spalten? Wenn Du wenig
Updates/Inserts machst, aber Probleme mit selects hast, könntest Du auch einfach für mehr Spalten einen Key definieren, dann geht es auch sehr viel schneller.
Viele Grüße
Stephan