MySQL、PostgreSQL、SQLite

更新日:2004年07月22日

MySQLのチューニング

編集部 All About 写真

MySQLのチューニングについて解説します。

文章:堀江 美彦(All About「データベース」旧ガイド)
MySQLのチューニング

MySQLはスケーラブルなアルゴリズムを使用し、通常の実行時のメモリ消費を小さくしていますが、メモリを多く割り当てると、パフォーマンスが向上します。

mysqld サーバで使用されるデフォルトのバッファサイズは次のコマンドで確認できます。

shell> mysqld --help

下記のように表示される変数の値を確認し、調整します。
innodb_force_recovery             0
interactive_timeout               28800
join_buffer_size                  131072
key_buffer_size                   8388572
long_query_time                   10
lower_case_table_names            TRUE
max_allowed_packet                1048576
max_binlog_cache_size             4294967295
max_binlog_size                   1073741824
max_connections                   100
max_connect_errors                10
max_delayed_threads               20
max_heap_table_size               16777216
max_join_size                     4294967295
max_relay_log_size                0
max_seeks_for_key                 4294967295
max_sort_length                   1024
max_tmp_tables                    32
max_user_connections              0
max_write_lock_count              4294967295
bulk_insert_buffer_size           8388608
myisam_block_size                 1024
myisam_max_extra_sort_file_size   268435456
myisam_max_sort_file_size         2147483647
myisam_repair_threads             1
myisam_sort_buffer_size           8388608
net_buffer_length                 16384
net_retry_count                   10
net_read_timeout                  30
net_write_timeout                 60
open_files_limit                  0
query_alloc_block_size            8192
query_cache_limit                 1048576
query_cache_size                  0
query_cache_type                  1
query_prealloc_size               8192
read_buffer_size                  131072
read_rnd_buffer_size              262144
record_buffer                     131072
relay_log_space_limit             0
slave_compressed_protocol         FALSE
slave_net_timeout                 3600
range_alloc_block_size            2048
read-only                         FALSE
slow_launch_time                  2
sort_buffer_size                  2097116
table_cache                       64
thread_concurrency                10
thread_cache_size                 0
tmp_table_size                    33554432
thread_stack                      196608
transaction_alloc_block_size      8192
transaction_prealloc_size         4096
wait_timeout                      28800
default-week-format               0

変数の値は
shell> mysqld_safe --key_buffer_size=64M --table_cache=256            --sort_buffer_size=4M --read_buffer_size=1M &

のようにコマンドで指定するかmy.cnfファイルで指定します。

バッファサイズ、長さ、およびスタックサイズの値はバイト単位です。
`K' または `M' を値に付けると、それぞれキロバイト、メガバイトを示します。
my.cnfには下記のように指定します。(*注)
[client]
# ここから クライアント全てに対するパラメターの設定を指定します

#[safe_mysqld]
# safe_mysqld に与えるオプション

#[mysqld_safe]

[mysqld]
# ここから サーバーに対するパラメターの設定を指定します

set-variable = key_buffer=32M
set-variable = table_cache=256

[mysql]
# password=my_password で、mysql コマンドに接続する場合に使用します

password=my_password

#[mysqldump]

#[odbc]

下記はMySQLサーバをチューニングする際に使用される変数のうちの主要なものです。

■key_buffer
検索に使われるインデックスをバッファに保存する際のメモリサイズです。
メモリに余裕がある場合増やすとパフォーマンスが向上します。
例)
key_buffer=256M

■table_cache
データのキャッシュサイズです。
値を大きくすることでディスクのI/Oが減りパフォーマンスが向上します。
例)
table_cache=256

■max_allowed_packet
入力データ保持のための最大バッファサイズです。
画像など、大きなデータ挿入をおこなう際に増やします。
例)
max_allowed_packet=1M

■sort_buffer
ソートをおこなう際に使用するバッファサイズです。
値を大きくすることでORDER BYやGROUP BYをクエリーに用いた場合のパフォーマンスが向上します。
例)
sort_buffer=1M

■record_buffer
値を大きくすることでインデックスを含まないクエリーの実行速度が上がります。
例)
record_buffer=1M

■long_query_time
mysqladmin statusコマンドで表示されるSlow queriesにカウントされる場合のしきい値(単位は秒)を指定します。
例)
long_query_time=1

■join_buffer
大量のjoin が発行される場合はjoin_bufferを増やします。
例)
join_buffer_size = 131072

(*注) --- my.cnfの読み込み順
後から読まれたほうのファイルの設定で、前の設定は上書きされます。

Linuxの場合

/etc/my.cnf

DATADIR/my.cnf

~/.my.cnf
の順に上書きされます。


Windowsの場合

windowsシステムディレクトリ\my.ini

C:\my.cnf

C:\mysql\data\my.cnf
の順に上書きされます。

MySQL関連記事一覧

(執筆者:堀江 美彦)

  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

編集部 All About

All About Good Answers Topics

回答募集中のトピック(お題)

回答できるものを探そう Good Anwsersトップへ
今なら最大10,000円の回答キャンペーン実施中!

ビジネススタイルは、スーツの着こなしのルールを遵守しつつ、小物で個性を打ち出すのがセオリー。だからこそ、比較的自由度の高いバッグが重要だ。そこで今回は、「ブリーフケース」と「トートバッグ」という今おすすめのタイプから15点ずつアイテムをピックアップ。品質や素材が秀でているだけでなく、機能面も優れる才色兼備な逸品を厳選した。バッグを新調するだけで、不思議なほど心躍る。

人気データベースランキング

Powered by 価格.com

おすすめ記事

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

All About ウェブマガジン

男性向け

男のカバン完全カタログ

女性向け

パンの美味しい、素敵カフェ

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック