For Want Of A Better Word

[mysql]なぜかindexが使われない、、、クォーテーションで囲っている?

   

whereの対象列にindexを張っている。

しかし、検索時にやたら重いことがあった。

explainをみたら、indexが使われてない模様。

たまたま、シングルコーテーション「’」をつけたら、早くなった…explainを付けるとインデックスが使われている。

どうやら、項目がvarcharの場合は、文字列として認識させるため囲ってあげないとインデックスが活躍しない模様。

下記でも同じこと書いている。

https://colo-ri.jp/develop/2010/07/mysql-index-select-slow.html

 

しらなかった—–

 

 

[補足]EXplainの見方

http://nippondanji.blogspot.jp/2009/03/mysqlexplain.html

select_type = simple (joinやunion等なし)

select_type = 利用可能なインデックスの候補として挙げたキーの一覧。

key = 実際に利用されたインデックス

key_len=keyの長さ (キー項目は短いほうが高速)

ref = keyで参照している項目(定数が指定されている場合はconst)

rows = テーブルからフェッチされる行数の見積もり

Extra = そのクエリを実行するためにオプティマイザがどのような戦略を選択したかということを示すフィールドである。

パターン

Using where

WHERE句に検索条件が指定されており、なおかつインデックスを見ただけではWHERE句の条件を全て適用することが出来ない場合に表示される。

Using index・・・クエリがインデックスだけを用いて解決できることを示す。Covering Indexを利用している場合などに表示される。

などなど

下記も参照。

http://qiita.com/Tsuji_Taku50/items/43eb2a41915d03173773

 - 未分類

  関連記事

no image
HTMLコントロールとWEBサーバコントロールの使い分け。

HTMLありきで作る場合は、HTMLコントロールで、HTMLタグをASP化すると …

no image
ActiveDirectory勉強サイト

ADの基本概念 【参考】http://itpro.nikkeibp.co.jp/ …

no image
コピーライトって書く必要あるの?

なんと無く書いているけど、疑問に思ったのでちょっと調べた。 参考サイト: htt …

no image
はてなブログに「style」タグを書いたらそこ以下表示されなくなって、上部の管理メニューも表示されなくなった。

タグはそのままHTMLとして解釈されちゃうから、そこ以降がstyleの中身扱いに …

no image
[その他][用語]アーキテクチャ

ハードウェア、OS、ネットワーク、アプリケーションソフトなどの基本設計や設計思想 …