MySQLについて考える

たまに出ていたSQLのエラーを出さないようにする為にはどうしたものか?といったことをネットで調べていたところこんな記事を見つけました。

第 3 回 MySQL サーバーを調整する

サーバー調整のヒントで MySQL サーバーを飛躍させる

https://www.ibm.com/developerworks/jp/linux/library/l-tune-lamp-3.html

クエリーをキャッシュする

このIBMが公開してくれている技術文書にあるようにmy.confに設定を入れました。

query_cache_size = 32M を /etc/my.conf に追加すると、32MB のクエリー・キャッシュを有効にすることができます。

https://www.ibm.com/developerworks/jp/linux/library/l-tune-lamp-3.html

デフォルトで無効になっているクエリー・キャッシュを有効にしたところ、表示速度が体感で速くなったので、効果はかなりあるようでした。

このMySQLを飛躍させる方法にも記載されている通り、体感でもこれだけ高速化ができるのであればデフォルトで有効化しておけば良さそうですが、システムによってはリソースの枯渇原因ともなりそうなので、無効化がデフォルトになっているようです。

多くの LAMP アプリケーションはデータベースに大きく依存していますが、同じクエリーを何度も繰り返し行います。クエリーが実行されるたびに、データベースは同じ作業を行わなければなりません (つまりクエリーを解析し、その実行方法を決定し、ディスクから情報をロードし、その情報をクライアントに返します)。

MySQL にはクエリー・キャッシュと呼ばれる機能があり、クエリーの結果が再度必要な時のために、その結果をメモリーに保存します。多くの場合、これによってパフォーマンスを劇的に向上させることができます。ただし注意する点として、クエリー・キャッシュはデフォルトで無効になっています。

キャッシュのヒット状況

どれぐらいキャッシュにヒットしているかについては、MySQLにログインしてコマンドで確認をすることができました。

mysql> SHOW STATUS LIKE 'Qcache%';
show_mysql_status.png
キャッシュのステータスが確認できます


おわりに

このステータスをずっと見ていると、バシバシとキャッシュにヒットしている状況がわかり、とても気持ちがいいです。似たような症状でお悩みの方はぜひお試しを。

ABOUT dtn.jp

この運営ブログをみてdtn.jpの運営サイトに興味をお持ちになった方は下記のリンク集からサイトをご参照ください。PHP・SQL・JS・HTML・CSSや様々なAPIでゼロから立ち上げたサイトを複数運営しています。

dtn.jp関連サイト

  • ディレクトリ型検索エンジンdtn大手サイトは全てサービスを終了し、中小でも運営を継続するところがほとんどなくなってしまったディレクトリ型検索エンジンを2002年から細々運営しており、未だに細かい機能改修も行っております。申請されたサイトは実際に訪問して細かく確認をしているので登録までかなりお時間いただきます。
  • 猫ネコサーチエンジン猫・ペットサイト専用のディレクトリ型検索エンジンです。登録サイトはサイトのスクリーンショット付きでカテゴリに掲載しています。
  • 画像掲示板の泉画像やYouTubeやニコニコ動画が貼り付け可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitter(ツイッター)のトレンドワードや人気ハッシュタグデータを月別に集計してランキング形式で公開しています。
  • Keyword Tool++Yahoo APIや楽天サイトのデータを日次で収集したデータを元に、EC系キーワードをラインキング形式でご紹介しています。各ワードは検索ボリュームや関連語、24か月の検索ボリュームトレンドを確認も可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能なサイトにしています。
  • TrendinGファッションモールに出店するブランドをアイテムヒット率でランキングとしたサイトです。まだβ版です。

各サイトの開発方法などについて

各サイトの開発方法や運用トラブルについては、当ブログで不定期にご紹介しています。Twitterで新着記事のお知らせもしています。宜しければフォロー下さい。