Laden Sie eine MySQL-innodb-Datenbank in den Speicher
Ich habe eine MySQL-innodb-Datenbank auf 1,9 GB, zeigten, indem Sie folgenden Befehl aus.
SELECT table_schema "Data Base Name"
, sum( data_length + index_length ) / 1 048 576
as "Data Base Size in MB"
, sum( data_free )/ 1 048 576
as "Free Space in MB"
FROM information_schema.TABLES
GROUP BY table_schema ;
+--------------------+----------------------+------------------+
| Data Base Name | Data Base Size in MB | Free Space in MB |
+--------------------+----------------------+------------------+
| database_name | 1959.73437500 | 31080.00000000 |
Meine Fragen sind:
-
Bedeutet es, wenn ich die innodb_buffer_pool_size zu 2 GB oder größer ist, wird die gesamte Datenbank in den Arbeitsspeicher geladen werden, so viel weniger Lesen von der Festplatte Anträge sind erforderlich?
-
Was bedeutet der freie Speicherplatz von 31GB bedeuten?
-
Wenn die maximale RAM zugewiesen werden kann innodb_buffer_pool_size ist 1 GB, ist es möglich, anzugeben, welche Tabellen in den Arbeitsspeicher geladen, während die andere Personen immer vom Datenträger gelesen?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
erwägen Sie die Verwendung memcached als cache-Ebene zu beseitigen, Datenbank access insgesamt, wenn Sie eine bessere Leistung.
show variables like 'innodb_data_file_path'
. Der freie Speicherplatz gemeldet wird, wie viel von den aktuellen Daten-Dateien ist unbenutzt. In Ihrem Fall haben Sie 2gigs gespeicherten Daten (wahrscheinlich) 32gigs von InnodB-Daten-Dateien, verlassen 30gig zur Verfügung.