私がグーグルで調べたところ、sqlite はクラスター化されたインデックスをサポートしていません( Four: Clustered Indexesを参照)。
これは、インデックスが順次 INTEGER である場合、レコードはその INTEGER の順序でデータベースに物理的に配置されることを意味します。1、2、3 の順です。
- シーケンシャル int インデックスを含むテーブルからいくつかのレコードが削除された場合、新しい挿入のレコードはどこに配置されますか? 私が知っていることから、レコードの int ID は大きくなるだけなので、レコードは末尾に追加されますよね? 削除された場所が無駄になるということですか?
- シーケンシャル INTEGER インデックスがない場合、sqlite テーブルはヒープ テーブルですか? つまり、空き領域が最初に見つかった場所にレコードが配置されます。