MySQLパフォーマンスチューニングのためのクエリの基礎知識 パフォーマンスチューニングについては↑が非常に参考になります。 ただ、いくらパフォーマンスチューニングをしてもMySQLの設定がデフォルトでは限界が有るので、設定も変更する必要が有ります。 InnoDBをメインストレージエンジンとしている場合は、


innodb_buffer_pool_size
 ⇒InnoDBのインデックスやレコードをキャッシュするメモリ領域のサイズ

innodb_log_file_size
 ⇒InnoDBの更新ログを記録するディスク上のファイルサイズ
 ⇒innodb_buffer_pool_sizeのサイズを増やしたらinnodb_log_file_sizeも合わせて調整する必要が有る。

が重要。 SHOW VARIABLESコマンドで現状の設定をまず確認。

mysql > SHOW VARIABLES LIKE "innodb_%_size"; +---------------------------------+---------+ | Variable_name | Value | +---------------------------------+---------+ | innodb_additional_mem_pool_size | 1048576 | | innodb_buffer_pool_size | 8388608 | | innodb_log_buffer_size | 1048576 | | innodb_log_file_size | 5242880 | +---------------------------------+---------+ 4 rows in set (0.00 sec)
innodb_buffer_pool_sizeはデフォルトでは8Mに割り当てられています。 変更するにはWindowsの場合はmy.ini、Linux系の場合はmy.cnfを編集します。
innodb_buffer_pool_size = 16M innodb_log_file_size = 2M
MySQLを再起動して、確認。
mysql > SHOW VARIABLES LIKE "innodb_%_size"; +---------------------------------+----------+ | Variable_name | Value | +---------------------------------+----------+ | innodb_additional_mem_pool_size | 1048576 | | innodb_buffer_pool_size | 16777216 | | innodb_log_buffer_size | 1048576 | | innodb_log_file_size | 2097152 | +---------------------------------+----------+ 4 rows in set (0.00 sec)
開発環境ではデフォルトの設定で開発していたので、本番環境からデータを取ってくるとSQLが重すぎる!ってことがありましたが、これで解消されました。 [参考にさせて頂いたサイト] 5分でできる、MySQLのメモリ関係のチューニング! MySQL 初めてのチューニング