こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

MySQLのチューニングについて

MySQLのチューニングについて

パソコンのスペック
・windows Vista Home Premium
・プロセッサ Intel(R) Core(TM)2 CPU 4300 @ 1,80GHz 900 MHz
・メモリ(RAM) 2.00 GB
・システムの種類 32ビットオペレーティングシステム

XAMPP
・PHP Version 5.2.3
・Apache 2.2.4(Win32)
・MySQL 5.0.45

phpmyadmin
・フィールドが「名前」「郵便番号」「電話番号」「住所1」「住所2」「住所3」の6つです。
種別がすべてvarchar(30)、照合順序がutf8-unicode-ci,
ディスクの使用量が、データが600MB、インデックスが1000バイト。
700万行あります。今後、行数を増やす予定です。

MySQLの設定について(my.cnf)
# The MySQL server
[mysqld]
default-character-set=utf8
skip-character-set-client-handshake
basedir="C:/xampp/mysql"
tmpdir="C:/xampp/tmp"
datadir="C:/xampp/mysql/data"

old-passwords
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

skip-locking
key_buffer = 500M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 64k
read_buffer_size = 256k
read_rnd_buffer_size = 256k
net_buthread_stack = 64k
thread_stack = 64k

[mysqldump]
default-character-set = utf8
quick
max_allowed_packet=100M

[mysql]
default-character = utf8
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 500M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 500M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

上記のような状況です。

検索速度を速くするために、チューニングが必要だと思われますが、
どこをどう修正したらよいか教えてください。

投稿日時 - 2010-07-19 16:43:06

QNo.6049382

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

データサイズはそれほど大きくないようですし、まずはすべてのクエリでインデックスが有効に利用されているかどうかを確認するといいでしょう。ベタですが、スロークエリログを有効にしてインデックスが使われていないクエリを探すといいでしょう。
http://dev.mysql.com/doc/refman/5.1/ja/slow-query-log.html
※ --log-queries-not-using-indexesオプションを使いましょう。

遅いクエリが見つかったら一つずつ改善しましょう。地道な作業ですが、EXPLAINとにらめっこしながら頑張ってください。
http://nippondanji.blogspot.com/2009/03/mysqlexplain.html

みたところMyISAMをお使いのようですので、WindowsならLargeSystemCacheを有効にしましょうと言いたいところですが、Vistaでは効かないそうなのであきらめましょう。
http://p2pquake.ddo.jp/diary/20061105.html

性能を求めるならサーバー向けOSにしたほうがいいでしょう。ちなみに、MyISAMにおいてLargeSystemCacheを有効にする根拠ですが、MyISAMはインデックス部分しか自分でバッファリングしないので、データ部分についてはファイルシステムのキャッシュを有効に利用できるようにするべきなのです。WindowsでLargeSystemCacheを有効にすると、ファイルシステムキャッシュに割り当てるメモリが増えるため、性能向上の効果があるのです。

投稿日時 - 2010-07-29 22:20:05

ANo.1

まず、VistaのHomeはありえないでしょう・・・OSがグダグダな上に、ライセンス問題も
でてくると思います。
OSはせめてLinux系のものに変えておいた方が無難だとおもいますが・・・

MySQLの高速化についてはハード1/3、インデックス1/3、SQL構文が1/3です。
ハード的にはだいぶ力不足がいなめないので、ハードをパワーアップする気があるなら
全とっかえでしょうね。

投稿日時 - 2010-07-20 09:35:53

あなたにオススメの質問