Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在数据库(如数据结构)中高效地实现和_Database_Data Structures - Fatal编程技术网

Database 在数据库(如数据结构)中高效地实现和

Database 在数据库(如数据结构)中高效地实现和,database,data-structures,Database,Data Structures,我可以想象如何在一些列上实现一个简单的数据库和索引——只需将这些列的值保存在某种平衡树中即可 这个问题涉及的是如何有效地实现和查询?您将如何实现这样的功能 SELECT * FROM points WHERE x > 0 and x < 4 and y > 10 and y < 14 从x>0、x10和y

我可以想象如何在一些列上实现一个简单的数据库和索引——只需将这些列的值保存在某种平衡树中即可

这个问题涉及的是如何有效地实现
查询?您将如何实现这样的功能

SELECT * FROM points WHERE x > 0 and x < 4 and y > 10 and y < 14
从x>0、x<4、y>10和y<14的点选择*

请注意,我并不是专门询问数据库,而是在实践中,对于二维查询,哪种数据结构最适合这个问题。我记得曾经学习过一次关于-这是这个问题的现实解决方案吗?

通过常规搜索树,您可以非常有效地做到这一点

你也可以在一个O(N)中扫描整个数据,我猜大部分数据库都是这样做的。特别是考虑到指数的成本

无论如何,这是大多数DBs支持的最常见和最简单的索引类型:因此,如果您在索引中寻找一个范围,那么它相对容易优化

顺便说一下,你也在期待DB能够理解你正在寻找范围并根据这一点进行优化,因为这通常意味着你只需要两个条件…