我在python应用程序中使用SQLite
数据库。我必须对表单进行很多查询
SELECT * from positions where (x between ? and ? ) and (y between ? and ?)
我已经创建了一个具有以下结构的索引:
CREATE INDEX IF NOT EXISTS positions_idx ON positions (x, y)
有没有办法提高查询速度?特别是单个组合指数是否优于两个单独的指数?
修改
类似的问题已经asked on this page。在那里呈现的解决方案使用R *树。我不太明白如何在SQL中构造这样的R *树。这条线
CREATE VIRTUAL TABLE r_tree_pos USING rtree(xMin, xMax, yMin, yMax);
只会创建一个我必须填充的空表。我是否必须从原始positions
表中手动创建R *树并将结果插入r_tree_pos
表中?一个简单的例子 - 可能在python
- 会很棒。