skillup

技術ブログ

Database

slow-query-logについて

投稿日:

データベースを伴う部分でののチューニングですが、大きく分けると

  1. SQLを書き直す
  2. インデックスを張りなおす
  3. プログラム内部でキャッシュを有効化する
  4. 設定ファイルの修正

上記のようなかんじになるのではないかと思います。

SQLの書き直しですが、SQL自体が遅い場合とSQLの発行回数を抑えるなどの方法があげられるでしょう。

そこで大切になってくるのが遅いSQLを特定することですね。

データがあまりない場合、遅さがわからなかったりするのでそもそも遅いものを特定することが大切になってきます。

MySQLにはslow_query_logという遅いクエリを出力する機能があります。どれくらい遅いかも自分で設定できるので、

この場合設定ファイル(/etc/my.cnf)に下記のように書いてあげればOKです。

※ただログを吐くと当然その分遅くなるので、できれば開発でやったほうが良いようです。

http://kamatama41.hatenablog.com/entry/20140413/1397391313
http://qiita.com/kkyouhei/items/7dce4815061071b1c01a

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

dbUnitの使い方

えーJavaで有名なテストツールDBUnitについて。 DbUtilではありませんので間違えないように。(私は最初間違えました・・・) まだ全然使い込んでるわけではありませんがどんなことができるかとい …

no image

PostgreSQLについて

本日はポスグレ(PostgreSQL)について。 自分はほとんどMySQLだったので、主にMySQLとの比較について書いていきます。 Contents1 アーキテクチャの違い1.1 MySQL1.2 …

no image

サブクエリ 移動平均など

前回の応用編です。 日付、入出金、残高はできましたが、ここからさらに、現在のレコードから3行以内(3行あれば3行、なければそれ以内でできるだけ)のレコードの合計値を出す計算を考えます。 結果だけ先に書 …

no image

論理設計のグレーノウハウ サロゲートキー

前回まではアンチパターンやバッドノウハウについて学習してきましたが、今回はグレーノウハウについて特集します。 グレーノウハウとは読んで字のごとくホワイトともブラックとも言えないという手法ですね。 つま …

no image

joinとeager loading

フレームワークでデータをORMがらみでjoinするときのネタ。 自分の場合はLaravel。他のフレームワークでも考え方は通じるものあるかと・・ Contents1 通常のjoin2 ループの中で取得 …