データの変更


ここまでは、参照クエリのパフォーマンスについてのみ議論してきましたが、 参照クエリだけがSQLではありません。もちろんデータの操作もサポートしています。 それぞれSQL標準の節に対応した、insertdeleteupdateの各コマンドです。これらは、「データ操作言語」 (DML)と呼ばれています。これらのコマンドのパフォーマンスに対しては、 インデックスは多くの場合ネガティブな影響を与えてしまいます。

インデックスは、純粋に冗長なデータであり、テーブルに含まれるデータしか 保存していません。書き込み操作の間、データベースはこの冗長なデータを 一貫性を持った状態に保たねばなりません。具体的に言うと、insertdeleteupdateは、 テーブルだけでなく、関係するデータを保持しているインデックスにも影響を 与えるのです。

Photo of Markus Winand
Markus Winand氏は、開発者がSQLパフォーマンスを改善するお手伝いをしています。 彼は、SQL Performance Explainedの 著者でもあり、出張トレーニングhttp://winand.at/での リモート講義も 行っています。