MySQL - Arbeitsspeicher sparen
Haben Sie auf Ihrem virtuellen Server knappe 100 MB RAM übrig? Falls ja freue ich mich über Post, anderenfalls könnte folgender Trick Ihnen vielleicht auch helfen.
Der mysql-Server lädt standardmäßig die Unterstützung des alternativen (und sicher grundsätzlich guten) Tabellenformats InnoDB. Dummerweise gehen fast 100 MB Arbeitsspeicher für die dafür zuständigen
Programmteile drauf, was ich etwas übertrieben finde.
Um zu prüfen, ob Sie überhaupt Tabellen im InnoDB-Format besitzen, führen Sie einfach folgendes SQL-Kommando aus:
redmine so aus:
bedenkenlos die folgende Zeile aktivieren (d.h. das # am Anfang der Zeile entfernen):
Siehe auch hier.
Der mysql-Server lädt standardmäßig die Unterstützung des alternativen (und sicher grundsätzlich guten) Tabellenformats InnoDB. Dummerweise gehen fast 100 MB Arbeitsspeicher für die dafür zuständigen
Programmteile drauf, was ich etwas übertrieben finde.
Um zu prüfen, ob Sie überhaupt Tabellen im InnoDB-Format besitzen, führen Sie einfach folgendes SQL-Kommando aus:
SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' engine=MyISAM;') FROM information_schema.tables WHERE engine = 'InnoDB';Das erzeugt gleichzeitig das SQL-Kommando zum Umformatieren der betreffenden Tabellen von InnoDB auf das klassische MyISAM-Format. Diese sehen z.B. für eine Tabelle attachments der Datenbank
redmine so aus:
ALTER TABLE redmine.attachments engine=MyISAM;Sicherstellen sollten Sie natürlich, dass Ihre Anwendung auch mit MyISAM statt InnoDB reibungslos läuft! Wenn Sie alle Tabellen auf MyISAM umgestellt haben können Sie in Ihrer /etc/mysql/my.cnf
bedenkenlos die folgende Zeile aktivieren (d.h. das # am Anfang der Zeile entfernen):
skip_innodbNach dem Neustart von mysql mit
/etc/init.d/mysql restartsollte deutlich weniger Arbeitsspeicher verwendet werden!
Siehe auch hier.
danielgruen - 27. Jul, 14:18