我本以为可以使用SimpleDB来处理我的应用程序中(从扩展性角度考虑)最具挑战性的部分 - 带有位置信息的类似Twitter的评论,但直到我坐下来实际开始使用SDB时才发现问题。
首先,SDB每个属性值的限制是1000字节,这甚至对于评论来说都不够,可能需要将较长的值拆分成多个属性。
其次,最大域大小为10GB。承诺是,您可以在不必担心数据库分片等问题的情况下进行扩展,因为SDB不会随着数据负载的增加而退化。但如果我理解正确,使用域会遇到与分片相同的问题,即在某些时候需要在应用程序级别上实现数据记录的分布和跨域查询。
即使对于我在整个应用程序中拥有的最简单的对象——原子用户评分,SDB也不是一个选项,因为它无法在查询中计算平均值(一切基于字符串)。因此,要计算对象的平均用户评分,我必须加载所有记录-每次加载250个-并在应用程序级别上计算它。
我是否忽略了SDB的某些内容? 10GB真的足以克服所有SDB的限制吗?我最初非常热衷于利用SDB,因为我已经在使用S3和EC2,但现在我简单地看不到用例。