我可以想象如何在某些列上实现一个简单的数据库和索引 - 只需将这些列值保存在某种平衡树中。
这个问题是关于如何有效实施AND
查询?你会如何实现像
SELECT * FROM points WHERE x > 0 and x < 4 and y > 10 and y < 14
请注意,对于二维查询,我并没有具体询问数据库,而是在实践中哪种数据结构最适合这种情况。我记得有一次关于Range Trees的研究 - 这是解决这个问题的现实世界吗?
答案 0 :(得分:0)
您可以使用常规搜索树非常有效地执行此操作...
你也可以在O(N)中执行此操作,扫描整个数据,这是我猜大多数数据库大多数时间都在做的事情。特别是考虑到指数的成本。
这是大多数数据库中支持的最常见和最简单的索引:http://en.wikipedia.org/wiki/B-tree所以如果你在索引中寻找一个范围,它相对容易优化......
顺便考虑一下,你也希望数据库能够理解你正在寻找范围并根据它进行优化,因为AND通常表示你只需要两个条件....