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

时间:2019-04-19 00:28:07

标签: amazon-dynamodb amazon-rds

我到处搜索,但没有找到任何答案,因此在此处发布问题。

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

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

那么,这是否意味着Dynamo DB SCAN操作性能与SQL WHERE子句性能大致相同,或者SCAN速度较慢,因为它需要对主键进行所有哈希处理?

1 个答案:

答案 0 :(得分:0)

  

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

仅在绝对必要时使用。

在大多数情况下,将存在一个或多个索引,以帮助缩小RDBMS需要读取的记录的范围。数据库甚至可能会即时建立一个。

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

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

这是AWS Summit演讲的不错的参考幻灯片 Iron Triangle of Purpose (PIE Theorem)

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