Amazon DynamoDB扫描与RDS where子句性能而不使用索引

问题描述 投票:0回答:1

我四处搜索,但没有找到任何答案,所以在这里发布问题。

我正在设置一个新数据库,并尝试比较Dynamo DB SCAN操作和SQL WHERE子句的性能(两者都不创建索引。)

据我所知,DynamoDB SCAN操作可能会随着数据的增长而变得非常慢,因为它必须通过所有记录来获得所需的结果,但SQL WHERE子句是否也会扫描整个表以获得所需的结果?

那么,这是否意味着Dynamo DB SCAN操作性能与SQL WHERE子句性能大致相同或者SCAN因为主键需要进行的所有散列而变慢?

amazon-dynamodb amazon-rds
1个回答
0
投票

SQL WHERE子句还扫描整个表以获得所需的结果?

只有绝对必须。

大多数情况下,将存在一个或多个索引,以帮助缩小RDBMS需要读取的记录。 DB甚至可以在运行中构建一个。

而Dynamo将在使用SCAN()时始终读取每条记录

如果您有很多(任何?)临时查询... Dynamo不适合您。

这是来自AWS Summit讲座Iron Triangle of Purpose (PIE Theorem)的精彩参考幻灯片

整个视频值得一看...... Matching the Database to the Workload

© www.soinside.com 2019 - 2024. All rights reserved.