読者です 読者をやめる 読者になる 読者になる
スポンサーリンク

DBで,インデックスの作成はORDER BYのソートも高速化する

DB パフォーマンス

WHERE句の検索だけでなく,ORDER BYも速くなる。

インデックスの効果について(SELECT時のORDER BY)
http://social.msdn.microsoft.com/Foru...

  • インデックスが張ってある列は,すでにキー値によってソートされている状態なので、そのキー値に対してのORDER BY は高速となります。
  • そして、キー値のソートを保つため、テーブルにデータを更新、追加、削除される度に、レコードの並び替えが発生します。


RDBMSをブラックボックスにしない - [第9回]効果のないインデックス---「性別」に付けても効果なし:ITpro
http://itpro.nikkeibp.co.jp/article/C...

  • 値の種類が少ないカラムにインデックスを付けても効果は得られない


インデックスを作成して,SQLの速度をチューニングする手順 (PostgreSQLで,EXPLAIN文とCREATE INDEX文によるパフォーマンス改善)
http://language-and-engineering.hatenablog.jp/entry/20110121/p1

  • WHERE句内に複数のカラムがAND条件で結合している場合,複合インデックスを作成


インデックスの基礎知識
http://www.hi-ho.ne.jp/tsumiki/doc_1....

  • 結合インデックスとは、複数の列で構成されるインデックス。WHERE句でよく複数の列が指定される場合は、それらの列に対してインデックスを作成するとより効果的な検索が可能


あとおまけで,

MySQLで降順(DESC)にデータを取得したいが、filesortはさせたく無い時の方法 - Web系エンジニアbcoのメモ帳
http://d.hatena.ne.jp/bco/20101225/12...

  • インデックスはASCで作成されるが,DESCでソートしたいという場合。数万件を超えた時点でインデックスは使われなくなりfilesortになってしまう


漢(オトコ)のコンピュータ道: MySQLのEXPLAINを徹底解説!!
http://nippondanji.blogspot.jp/2009/0...

  • 現在どのようにクエリが実行されているか実行計画を知る


発端となった質問:

MySQLの「ORDER BY」に対するインデックス使用について質問です..
http://q.hatena.ne.jp/1385003952