SQLite 是否支持批量加载(先排序后索引)?

Does SQLite support bulk-loading (sort-then-indexing)?

从现有数据构建索引树时,有一种批量加载算法,例如

  1. https://en.wikipedia.org/wiki/B%2B_tree#Bulk-loading
  2. https://www.youtube.com/watch?v=HJgXVxsO5YU

为非空 table 创建索引时,SQLite 是使用批量加载还是通过插入创建索引?从我的性能测试来看,似乎 SQLite 使用插入来创建索引,因为索引后插入 table 和插入后创建索引之间的时间成本相似。

我们知道为什么不使用批量加载吗?在实践中效果不是很好吗?

批量加载要求数据已经排序。

SQLite 通过将行插入临时索引来实现排序,因此使用它进行批量加载效率不高。