1. 更新処理(INSERT, UPDATE, DELETE)の遅延:データが追加・変更・削除されるたびに、DBMSは本体のテーブルだけでなく、インデックス側のデータ構造(B-Treeの並び順)も自動で並び替えて再構築しなければなりません。そのため、更新処理のパフォーマンスは低下します。
2. 保存容量の消費:インデックスは別途作成されるデータであるため、ディスク容量やメモリ空間を消費します。すべての列にインデックスを貼ると、データベース全体のサイズが非常に大きくなってしまいます。
3. 適切に設計しないと効かない:曖昧な検索(前方一致以外のLIKE検索)や、カーディナリティ(値のバリエーション)が低い列(「性別」など値が2つしかないもの)にインデックスを設定しても、検索の効率は上がらず、逆に遅くなる原因となります。
このため、実務においては検索の頻度や更新の頻度を考慮し、最も効果的な列に対してのみ慎重にインデックスを配置する設計が求められます。
IT試験においては、インデックスの目的、検索速度向上のメリットと更新速度低下のデメリットについて問われることが多いです。