ソーシャルサイエンス研究プロジェクトでは、8 GBのメモリを搭載したLinux専用サーバーでMySQL(5.5)を使用しています。データは約3000万レコードで構成され、約4GBのMyISAMソーステーブルが作成されます(MyISAMはデータが安定しており、トランザクションは役に立ちません)。私の質問はこれです:どうすればメモリが不要なボトルネックになるのを防ぐことができますか?
メモリの約20%しか使用されていませんが、多くの変数が相互に依存しているため、my.ini設定の適切なバランスを見つけることは困難です。 MySQLが可能な限り多くのメモリを使用することを許可するにはどうしたらいいですか?MySQL分析サーバーのメモリ使用量を最大限にする
現在の設定:
[mysqld]
max_connections = 3
performance_schema=on
default-storage-engine=MYISAM
local-infile=1
myisam_sort_buffer_size = 2048M
key_buffer_size = 2048M
tmp_table_size = 2048M
max_heap_table_size = 2048M
sort_buffer_size = 128M
read_buffer_size = 256M
read_rnd_buffer_size = 128M
join_buffer_size = 512M
thread_stack = 256KB
query_cache_size = 64M
query_cache_limit = 32M
table_open_cache= 256
table_definition_cache = 512
myisam_max_sort_file_size = 75G
私は、MySQL Tunerと[tuning-primer](https://launchpad.net/mysql-tuning-primer)の両方を使用して成功しました。問題は、そのようなツールがかなりの数の接続を持つトランザクションサーバーに対応しているため、この状況では適用されないメモリ使用に関する警告につながることです。 –