Es gibt einige Konfigurationsoptionen, die Sie sich überlegen sollten, bevor Sie beginnen.
Solange Sie myisam überhaupt nicht verwenden, können Sie fast allen max_connections
Speicher sicher zuweisen (halten Sie genug, damit Ihr Betriebssystem bequem läuft, und genug für Sie ) innodb_buffer_pool
. Das Schöne an InnoDB ist, dass fast der gesamte Speicher selbst verwaltet wird, ohne dass Dinge wie Abfragecaches, Schlüsselpuffer usw. getrennt werden müssen.
Ich würde empfehlen, dass Sie aktivieren innodb_file_per_table
, einfach weil es viel einfacher ist, nur das Dateisystem zu durchsuchen und zu sehen, wie viel Speicherplatz die verschiedenen Tabellen und Datenbanken benötigen. Sie benötigen weiterhin eine generische ibdata-Datei für den internen Gebrauch von InnoDB, können diese jedoch einfach als definieren 10M:autoextend
. Es müssen nicht viele verschiedene Innodb-Datendateien mit vorab zugewiesenen Größen definiert werden.
innodb_log_file_size
und innodb_log_buffer_size
kombiniert muss größer als das Zehnfache Ihres größten Blob-Objekts sein, wenn Sie viele große Objekte haben. Wenn Sie dies nicht tun (und Sie sollten es nicht tun [ 1 , 2 ]), müssen Sie sich wirklich nicht viel damit beschäftigen. Im MySQL Performance Blog finden Sie einen detaillierten Bericht zur Berechnung.
Und wenn Sie MySQL eine Weile ausgeführt haben, überprüfen Sie Ihre Einstellungen mit MySQLTuner oder MySQL Tuning Primer .
Versuchen Sie für einen detaillierteren Bericht mysqlreport und für die Live-Überwachung mytop .
Eine kleine "Überraschung" für mich war, dass innodb standardmäßig eine Datei für alle Datenbanken / Tabellen verwendet. Im Gegensatz zu MyISAM-Tabellen, die ein Verzeichnis pro Datenbank und Dateien pro Tabelle / Tabellenindex verwenden.
Dies kann von Bedeutung sein, wenn Sie die physischen Dateien auf Tabellenbasis verkleinern (Tabelle xxx optimieren).
quelle