807302 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

まんじうこわい@楽

まんじうこわい@楽

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Keyword Search

▼キーワード検索

Calendar

Profile

hknopage

hknopage

Free Space

Category

Freepage List

2009.09.09
XML
カテゴリ:データベース
 MySQLのクエリを高速化する為にindexを作成した。
 クエリは最後に「order by XXX desc」指定があるもので、そこも考慮してある。
 (index作る時に降順で設定済み)

 で、explainを見てみると、Extraが「Using where; Using filesort」
 ・・・Using filesort?order byでindex効いてない?
 MySQLバージョンは5.0.27。
 アレコレ検索していると、こちらのページで気になる事が書いてあった。
 WHEREで指定していないindexカラムはorder byでは使用されない?
 試しにorder byで使用したカラムをWHEREで無意味に使用してみる。
 AND [column]=true
 こんなのを追加。

 すると見事にUsing filesortが消え、Extraは「Using where」のみ。
 これどうなってるんだろう?
 DB設計の段階なので、サンプルデータが少なすぎてクエリ速度の差が分からない・・・。
 んー、とりあえずorder byで指定するものはwhereで無理やり使っておきますかね。

 ちなみに
 AND [column] IS NOT NULL
 AND [column] >= 0
 AND [column] > 0
 上記3つは「Using where; Using filesort」でした。
 わけ分からん。

--追記--
 AND [column]=true
 これでやると値が1のやつが対象になっちゃった・・・キャストが思ってたのと違うなぁ。
 あっ!
 AND [column]=[column]
 これでいいじゃんorz
 と思って試したら、無意味な式は実行されてないっぽいな・・・
 もうどないせいっちゅーんじゃ!
 そして調べているうちにある文を発見してしまった
-引用(MySQL5.1マニュアル)-
index_col_name 仕様はASCかDESCで終わる事ができます。これらのキーワードは昇順や降順インデックス値ストレージを指定する為の将来の拡張子として許容されます。現在は、それらは解析されますが無視されます。インデックス値は毎回昇順で格納されます。
-/引用-
 ・・・えーっと、今はindex作成時にdesc指定しても意味ないって事?
 もうどうにでもな~れ~(AAry





お気に入りの記事を「いいね!」で応援しよう

Last updated  2009.09.10 18:02:20
コメント(0) | コメントを書く
[データベース] カテゴリの最新記事



© Rakuten Group, Inc.
X