タグ

2012年5月31日のブックマーク (3件)

  • MySQLのINDEXとか最適なクエリとか - ORANGE

    MySQLMySQLのチューニングに関して、特にINDEXを貼ったときのSELECT文で躓いたのでメモ。 INDEXとはまず、INDEXを使わないシンプルなSQL文で、クエリに対してMySQLがどのように応答するのだろうか。以下、サンプル。 SELECT * FROM hoge WHERE foo = 'bar'; 上記のようなクエリを実行すると、MySQLはhogeテーブルに格納されている全てのレコードを読み、fooフィールドに文字列barが存在するか確認する。レコードの数が数百数千であれば問題ないのだろうが、数十万件数百万件のレコードが記録されている場合、これでは効率が悪い。この問題を解決するために、INDEXが存在する。まさしく書籍における牽引のように、レコードの格納場所を予め指定しておく便利な機能だ。投げられたクエリに応じて、可能性のある行を素早く選出できるようになる。INDEXを

  • http://www.res-system.com/weblog/item/550

  • MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ

    仕事MySQLのパフォーマンスチューニングをしていて、インデックスについて分かっていないことが多かったので調べたことをメモ。基的なところから学習しなおした。 MySQLのインデックスは、カラムが特定の値をもつレコードの迅速な検索に使用される。インデックスを使用すれば、数百とか数億ものレコードが入っているテーブルから、一組のレコードを迅速に見つけて取り出すことが可能になる。 しかし、インデックスは速度を改善することもあるが、挿入の邪魔になって遅くなることもある。 インデックスを適切に使うために、まずはインデックスの基概念をおさえる必要がある。 インデックスの概念 インデックスとは インデックスの仕組みを理解するには、まずMySQLがどのようにクエリに応答するかを知る必要がある。 例えば、 SELECT * FROM phone_book WHERE last_name = 'Hoge'

    MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ