言葉にできるは武器なるらしい

言葉に文字に残していきます何事も。いつかきっと誰かの役に立つはずだから。

インデックス再構成が必要な時

インデックスは設定すると高速化を実現できるが、かえって処理が遅くなる事もある。そのためデータの性質をしっかり把握して設計する事が重要となります。

インデックス設定をするとselectでデータ検索のアクセスが速くなる事は広く知られているが、インデックスを再構成する必要 性があることは本当にDBに詳しい人じゃないと知らないようです。

データベースにinsert、update、delete文が使用されるたびに実はインデックスの再構成の必要があります。再構成しないとどんどん検索が遅くなっていきます。

そのため、インデックス設計ではデータ構造だけではなくデータ量や更新頻度なども考慮した上で、どの列にインデックスをはるかを考えなければいけません。

インデックスを再構成しないと遅くなる理由は、Bツリーを考えればわかります。ある列に今{1,2,3,5,7,8,9,10}が存在するとします。この時点でインデックスをはると{1,2,3,5,7,8,9,10}の順でインデックスが貼られます。そのあとにinsertで{4,6}が挿入されたとします。今のインデックスには4と6は存在していませんから効率的に探せるわけがありません。