はじめに
コジマです。
Index Seek, Index Scan, Table Scanについて簡単にまとめてみました。
Index Seek
Bツリー走査を行います。
計算量は二部探索と同じO(logn)となります。
Index Scan
インデックスを上から順に探索します。
計算量は線形でO(n)です。
Table Scan
テーブルの全行、全列を順に探索します。
テーブルの構造にもよりますが一番重いです。
速さ
以下の順です。
遅い >>>>>>>>>>> 速い
Table Scan > Index Scan > Index Seek
さいごに
参考サイトは以下です。
https://use-the-index-luke.com/ja/sql/explain-plan/sql-server/operations
https://www.atmarkit.co.jp/ait/articles/1202/23/news132_2.html
もっと詳しく書いている記事はたくさんありますが、ポイントを押さえておけるように簡単に書きました。
- (遅)Table Scan > Index Scan > Index Seek(速)の速度順だよ
- Seekは木構造を読むから速いよ。Scanは上から読むから遅いよ。
- なるべくIndex Seekになるようにしよう
この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!
もっと学びたい人はこちら
SQLをもっと学びたいエンジニアのためにおすすめのUdemy講座を紹介いたします!
SQLはじめましての人!まずあなたの3時間をください。
この講座でまずこれだけは覚えてくれ!という内容をしっかり押さえることができます。
SQLはプログラミング言語がなんであれ、システム開発に必要になります。
この講座を見て最低限必要な知識を身に着けて実践で貢献できるようになりましょう!
3時間で学ぶ SQL ・データベース 超入門【丁寧な解説+演習問題で SQL データ抽出の基本が身につく】標準 SQL
データベースの設計について学べる講座です。
設計について学べる教材は少ないので、実務でデータベースを触る人にはとてもうれしい講座です。
データベース講座1:データベース論理設計
ちょっとニッチに感じるかもしれませんが、SQLのインデックスを学ぶことができる講座です。
よい性能でSQLを運用するためにはインデックスの理解は必要不可欠です。
CRUD書いて満足するエンジニアを出し抜きましょう。
SQLServerのインデックスを理解して検索を速くする方法
気になった人はぜひ見てみてくださいね!
以上、コジマでした。