タグ

チューニングとmysqlに関するorenonihongogayabaiのブックマーク (5)

  • MySQLのインデックスの使い方 - Qiita

    SQLのパフォーマンスチューニングで考えるべきことの一つに、インデックスがある。インデックス無しで作業をしてみて、インデックスの重要性を理解しましょう。 ディスクからのデータの読み込み ディスク上ではファイルという概念はない。ブロックという概念がある。普段なら一つのファイルがいくつかのブロックを使用している。ブロックの順位が決まっていて、ファイルが分割された後に各部分がそれぞれのブロックに保存されます。 ファイルを読み込んでる時に、各ブロックのデータを取得して組み立てる。フラグメンテーションによってそのブロックがディスクの色んな位置に置いてある可能性があるので、それによって読み込みが遅くなりかねない。 ファイルの中で何かを探している時に、全てのブロックからデータを取得する必要が出てくる。ファイルが大きければ大きいほどブロックの数が増えて検索がすごく遅くなる。 MySQLでのデータ検索 My

    MySQLのインデックスの使い方 - Qiita
  • パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合

    MySQL 5.1で追加された機能にパーティショニングがある。これは適切に利用すれば非常に強力な機能であることは間違いないのだが、使いどころが難しい。なぜなら、 インデックスをつけるだけでカバー出来る場合が多い。 パーショニングを使わずに、単にテーブルを分けてしまえばいい。 テーブルが巨大にならないとあまり効果を実感できない。 使い方を間違えると性能が落ちてしまう。 などの問題があるからだろう。 そんなわけで、今日と明日でパーティショニングが役に立つシーンを2つ紹介しようと思う。今日は一つ目、インデックスをつけたいカラムのカーディナリティが低い場合だ。カーディナリティとは日語に訳すと濃度とか訳されるが、要は値の種類(分散具合)のことである。例えば、YesかNoの2つの値しかとらないカラムは非常にカーディナリティが低く、インデックスをつけるととても効率が悪い。インデックスを使って目的の行を

    パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • Webプログラマーのメモ帳 - MySQL(管理者向け)/インストール/my.cnfサンプル

    MySQL(管理者向け)/インストール/my.cnfサンプル † MySQLをインストールすると、メモリー容量に対応したmy.cnfのサンプルが付属しています。それらの内容を提示します。(但し、説明コメントは削除しています。) ↑ my-small.cnf † メモリー64MB以下のサーバー向け。通常使用することはないでしょう。 [client] #password = your_password port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K

  • MySQLやPHPのパフォーマンスを向上させる方法のメモ。 » とりあえず9JP

    MySQLPHPのパフォーマンスを向上させる方法のメモ。 色々な設定があるとは思いますが、ここでは個人的に効果を顕著に感じたMySQLのクエリキャッシュとAPCについて書いています。 当はPHPやらMySQLそれぞれでベンチ取った方が良いとは思うのですが、この記事では、WordPressを設置して、そのインデックスページに対するApacheBenchのRequests per second(一秒間に処理されたリクエスト数)のみを見て、その結果で比較しています。 ※ApacheBenchはローカルではなく外部のサーバからという微妙な環境で、リクエスト数100、同時リクエスト数10、試行回数はそれぞれ1回という微妙な値でやってます。 まずは、全く未設定な状態での、Requests per second。 実行したコマンドは以下。 ab -n 100 -c 10 テストしたいURI Requ

  • 1