Performance Optimierung für Temporäre Tabellen
-
Ich habe beim Testen von i-doit bemerkt, dass bei jedem request Daten auf die Festplatte geschrieben werden. Das ist eigentlich unnötig, weil in der Datenbank kein Datensatz geändert wird, wenn nur Inhalte angezeigt werden.
Beim debuggen habe ich herausgefunden dass es an temporären Tabellen hängt. Temporäre Tabellen sind extrem eklig, weil sie intern Commits erfordern und so das System künstlich ausbremsen. Viel besser wäre, wenn die Tabellen als temporär gekennzeichnet werden und als Storage-Engine die MyISAM verwendet wird.
Ich habe unser Test-System wie folgt gepatched:
idoit-test:/var/www# diff ./src/classes/components/isys_component_list.class.php.orig ./src/classes/components/isys_component_list.class.php 451c451 < $l_strSQL = "CREATE TABLE {$l_tempTableName} (" . $l_strSQLTemp . ");"; --- > $l_strSQL = "CREATE TEMPORARY TABLE {$l_tempTableName} (" . $l_strSQLTemp . ") ENGINE=MyISAM;";
-
Hi,
vielen Dank für deinen Post. Uns ist er leider erst jetzt ins Auge gefallen.
Wir haben bereits ähnliche Änderungen für die neue Pro-Version vorgenommen und werden prüfen, ob wir weiter optimieren können.
Vielen Dank noch mal und lieben Gruß
Christian