2013-10-25T16:10:09
kristian2013-10-25T15:18:15
jan2013-10-25T13:37:38
kristianJein, gefühlt ist es so, dass ich bei MyISAM für den ersten Zugriff auf die DB extrem viel Zeit brauche, danach ist der table wohl im Ram aber der erste Zugriff ist deutlich im Sekundenbereich, das sehe ich bei InnoBD derzeit nicht.
Das ist merkwürdig und solltest Du vielleicht mal genauer untersuchen.
Praktisch ist MyISAM immer massiv viel schneller als InnoDB, dafür gibt's halt keine Transaktionen, keinen Foreign Key, kein Row Level Locking etc pp. Aber wenn MyISAM langsamer ist als InnoDB, dann stimmt irgendwas vermutlich nicht.
Wieder mal jein ;-)
Man muss es differenziert sehen.
Solange es nur um die Ausgabe der Daten geht habe ich kein Problem, weder mit MyISAM noch mit InnoDB.
Wenn ich aber Daten aus einer Table ausgeben will in die gerade geschrieben wird - und das kommt häufig vor - dann wird es eng.
Klar, das ist dann defintiv ein Killer für MyISAM weil die ganze Tabelle gelockt wird. Da bist Du mit InnoDB sicher besser beraten -- aber vielleicht kannst Du auch mischen, Schreib/Lese-Intensive Tabellen als InnoDB, reine Lese-Tabellen (oder solche, die sich selten akut ändern) als MyISAM.
Oder Du wirfst mehr Hardware drauf, das wird wohl das einfachste sein. Mit Tablespaces um Tabellen und Indizes ordentlich zu trennen erhöhst Du die Performance nochmals.
Allerdings natürlich auch die Frage: ist MySQL zwingend? MyISAM ist super, aber InnoDB habe ich schon öfter von PostgreSQL geschlagen gesehen, was Performance angeht.