![]() |
1
6
他们认为RDMBS查询规划器对查询采用该解决方案的断言是不正确的,至少对于Postgresql 9.0是这样,而且我还可以想象对于其他平台也是这样。我做了一个类似的快速测试:
在这里,client_attribute_id被索引,因此它完全按照需要执行-返回索引,应用过滤器,并在输出达到限制时停止。 如果ordering列没有索引,则需要进行表扫描和排序,但只需要进行一次表扫描:
这使用一个heapsort在顺序扫描过程中维护前10个结果,这听起来完全像他们自己编写的解决方案。 |
![]() |
2
4
我不认为TomWhite说关系数据库是“坏的”;它们对非关系的、非基于集合的数据不是最佳的。 很长一段时间以来,人们都知道深层对象图不适合关系数据库。它们通常出现在诸如几何数据的CAD表示之类的问题中,在这些问题中,装配是由零件装配的装配组成的。参考链确实很长。 对象和图形数据库是解决这类问题的方法,因为我早在90年代就意识到了它们。 关系数据库对于基于集的关系数据来说是非常棒的。但并非所有数据都属于这一类。这就是为什么NoSQL获得了思想共享。 我想你举的例子就是这么说的。 |
![]() |
3
1
RDBMS是用于您没有想到的查询的。一旦你确定了你想要什么,你就可以应用最理想的解决方案。 |
![]() |
4
1
无论使用SQL还是NoSQL,如果以错误的方式设计查询,性能都会很糟糕。 我将通过在where子句中添加对timestamp的检查来修复该示例。如果你有很多数据,你可以假设最近的10个条目来自最后一分钟,那么为什么要尝试读取和排序上个月的所有条目呢? 我可以同样轻松地设计同一个示例,使NoSQL看起来很糟糕,因为默认情况下,您只能通过ID来查找记录,因此需要加载整个数据集来查找所需的记录,而忽略了设置各种辅助/自定义索引的能力,这些索引将使您在重要的查询中获得比SQL更好的性能。 |
![]() |
ZPeto · Couchbase实现语言 7 年前 |
![]() |
cfitzarl · Cassandra-按ID分组和按日期排序 7 年前 |
![]() |
websanya · MongoDB中对象数组内的多个对象数组 7 年前 |
![]() |
timelfelt · 父属性上的Mongodb聚合筛选器查找 7 年前 |
![]() |
Lord Djaz · 来自多个SQL表的NoSQL中的数据模型 7 年前 |