4

私が間違っていなければ、クラスター化インデックスは、いくつかのカスタム順序に応じて、テーブルの行をディスク上で物理的にソートします。テーブルはファイルに保存されていると思います(テーブルごとに1つのファイルでしょうか?)。しかし、誰かが「新しい行」をテーブルに挿入し、それを最初に配置する必要があるとします。データベースは、テーブル全体 (すべての行) をファイル内で物理的にシフトする必要がありますか? それは遅すぎませんか、または挿入後にソートされた順序を実現する最適化手法はありますか?

4

1 に答える 1

5

テーブルは必ずしもファイルとして保存されるわけではありません。論理的には、それらはページに格納されます。各ページに 100 行あり、必要に応じて追加の 20 行を保持できるとします。次に、すべてのページがリンクされて、テーブル全体のデータが作成されます。

あなたの場合、最初に新しい行を追加すると、最初のページが変更されるだけで、100行だけシフトされます。これを何度も繰り返し、そのページの行数が 120 を超えると、そのページは 2 つの新しいページに分割され、それらがリンクされます。

于 2012-07-22T15:10:16.600 に答える