ここまでは、参照クエリのパフォーマンスについてのみ議論してきましたが、
参照クエリだけがSQLではありません。もちろんデータの操作もサポートしています。それぞれSQL標準の節に対応した、insert
、delete
、update
の各コマンドです。これらは、「データ操作言語」(DML)と呼ばれています。これらのコマンドのパフォーマンスに対しては、
インデックスは多くの場合ネガティブな影響を与えてしまいます。
インデックスは、純粋に冗長なデータであり、テーブルに含まれるデータしか保存していません。書き込み操作の間、データベースはこの冗長なデータを
一貫性を持った状態に保たねばなりません。具体的に言うと、insert
や
delete
、update
は、テーブルだけでなく、関係するデータを保持しているインデックスにも影響を
与えるのです。