key_buffer_sizeとは、indexの常駐量。
これがデフォルトでは8MB?と小さすぎるので、これを調整する。
# ハードウェアが贅沢になったともいえる。
① コマンドでrootでログイン
② MySQLにログイン
mysql -u root -p
MySQLにログインする際のパスワードは①のモノで。
③ key_buffer_sizeの値を調べる
show variables like ‘key_buffer_size’ ;
+—————–+———-+
| Variable_name | Value |
+—————–+———-+
| key_buffer_size | 16777216 |
+—————–+———-+
1 row in set (0.00 sec)
この時の/etc/mysql/my.cnf中の記述は
key_buffer = 16M
となっている。
MySQLのバージョンによって?はkey_buffer_sizeとなっていることもある。
桁区切りは
16,777,216(bytes)
なので、これは
16(M)777(K)216(bytes)
であり、16MB。
ということは、my.cnf中の記述で「16M」という表現でOK?
④ my.cnfを書き換えてUploadする。
key_buffer = 512M
⑤ MySQLからログアウト。
mysql > exit
⑥ MySQLを再起動する。
/etc/init.d/mysql restart
再度以下で値を確認する。
show variables like ‘key_buffer_size’ ;
+—————–+———–+
| Variable_name | Value |
+—————–+———–+
| key_buffer_size | 536870912 |
+—————–+———–+
1 row in set (0.00 sec)
536,870,912(bytes)
536(M)870(K)912(bytes)
なお、私の問題になっている環境では、512Mにしても1M(1,048,576bytes)にしても変化はなかった。
他の設定や、SQL文の見直しなどが必要になる。
とりあえずは256M(268,435,456bytes)にしておいた。
あまり大きくし過ぎるとメモリを圧迫するので、Debian端末が搭載する総メモリ容量の確認方法により総メモリを確認の上、適量を割り振ろう。
オライリージャパン
売り上げランキング: 56,487