cassandra cql中的限制有什么影响

问题描述

执行诸如select * from table limit 10之类的cqlsh查询时,cassandra会扫描整个表并只返回前10条记录吗,还是可以在整个数据中心中精确定位前10条记录而无需扫描整个表?

解决方法

LIMIT选项在查询返回的最大行数上设置上限,但这不会阻止查询执行全表扫描。

Cassandra具有诸如请求超时之类的内部机制,可以防止不良查询导致群集崩溃,因此查询更有可能超时,而不是对所有节点/副本进行扫描而使群集超载。

请注意,LIMIT选项与SELECT COUNT()一起使用时无关紧要,因为count函数仅返回1行(根据设计)。无论设置了多少限制,COUNT()都需要进行全表扫描。我在这篇文章https://community.datastax.com/questions/6897/中对此做了更详细的说明。干杯!

,

LIMIT选项在查询返回的最大行数上设置上限,但不会阻止查询执行全表扫描。