約5,000万行があり、インデックスサイズが4 GB(テーブルサイズが約6 GB)のテーブルを照会すると、データベースサーバーがメモリをスワップし、劇的にスローダウンするという問題に直面しています。これは、一時テーブルのサイズが超過し、ディスクにスワップされることに関係していると確信しています。
データベースサーバーを32 GBのRAMから64 GBのRAMにアップグレードした場合、MySQLデータベースがスワップではなくこの追加メモリを完全に利用できるかどうか疑問に思います。いくつかの変数(例:KEY_BUFFER_SIZEなど)を調べましたが、64 GBを超える値の設定をサポートしているようです。ただし、MySQLのドキュメントには、tmp_table_sizeが4 GBで最大になると書かれています。
それで、メモリのアップグレードは価値がありますか?「querying-large-table」問題はこれの恩恵を受けるのでしょうか、それとも4 GBの制限のために助けになりませんか テーブルをさまざまな方法でパーティション分割するなど、他のソリューションが潜在的にあることを知っていますが、テーブルについて何も変更せずに、追加のメモリが役立ちますか?
また、一般的に、32 GBから64 GBのRAMに移動するときにMySQLが利用できないメモリ関連の変数は他にありますか?
データベースサーバーとして64ビットLinux(Ubuntu)を使用しています。
ありがとう、ガレン