Beim Abfragen einer Tabelle mit ungefähr 50 Millionen Zeilen und einer Indexgröße von 4 GB (Tabellengröße von ungefähr 6 GB) ist ein Problem aufgetreten, das dazu führt, dass der Datenbankserver den Speicher austauscht und sich dramatisch verlangsamt. Ich bin mir ziemlich sicher, dass dies damit zu tun hat, dass die temporäre Tabellengröße überschritten und auf die Festplatte ausgelagert wurde.
Wenn ich meinen Datenbankserver von 32 GB RAM auf 64 GB RAM aufgerüstet habe, frage ich mich, ob die MySQL-Datenbank diesen zusätzlichen Speicher voll ausnutzen und nicht austauschen kann. Ich habe einige der Variablen durchgesehen (z. B. KEY_BUFFER_SIZE usw.) und sie scheinen das Festlegen von Werten über 64 GB zu unterstützen. In der MySQL-Dokumentation heißt es jedoch, dass die maximale Größe von tmp_table_size 4 GB beträgt.
Würde sich das Speicher-Upgrade also lohnen? Würde das "Abfragen großer Tabellen" -Problem davon profitieren, oder würde es aufgrund der Beschränkung auf 4 GB nicht helfen? Ich weiß, dass es möglicherweise andere Lösungen gibt, z. B. die Umstrukturierung der Tabelle, die auf unterschiedliche Weise partitioniert werden soll, usw. ... Aber würde zusätzlicher Speicher helfen, ohne etwas an der Tabelle zu ändern?
Gibt es im Allgemeinen auch andere speicherbezogene Variablen, die MySQL beim Wechsel von 32 auf 64 GB RAM nicht nutzen könnte?
Wir verwenden 64bit Linux (Ubuntu) als Datenbankserver.
Danke, Galen