限制Google App Engine中的数据量

时间:2012-02-20 17:22:19

标签: google-app-engine

我正在编写一个Google App Engine数据库,一旦它上线,它可能会拥有超过1000万条记录,并且会有相当不变的查询,插入和删除。

这么多数据会成为一个问题吗?我并不担心成本($$$)只是数据库的性能。查询将基于两个字段,这两个字段都是StringProperty并返回少于100条记录。

数据库有两个“表”,将对其进行大多数查询的表有大约100个字节的记录。较大的表不会获得尽可能多的查询(可能是小表的1/10),并且这些记录大约为30K。

删除是一项昂贵的操作吗?最好不删除旧记录,然后将其标记为已删除,也可以在cron作业中批量删除它们?

我知道Google App Engine和复制的分布式特性,这些问题不会成为问题。

1 个答案:

答案 0 :(得分:2)

1000万条记录对于数据存储区来说并不是很大,所以只要您的查询可以利用索引,您就不必担心。例如,如果你要走一个更大的数据集100记录一次,而不是说你想从数据集中的某个位置开始,你可以记住页面末尾的最后一个ORDER BY字段值并询问对于后面的元素(WHERE字段>'...' - 假设升序)。

您可以使用任务队列而不是cron作业进行删除,这取决于您希望多久返回给用户。数据存储区操作往往很慢,但如果只删除一条记录,则可以接受。但是,如果你要做多个操作,它可能会变得非常慢,因此最好在任务队列中执行这些任务,并在应用程序中保持良好的响应能力。

数据存储记录不能超过1Mb,30Kb是一个很大的记录大小,但不应该导致任何问题。请记住,只能索引短字符串(500个字符或更少)。