Google数据存储区效果:2次获得1次过滤查询

时间:2012-11-07 23:37:53

标签: google-app-engine google-cloud-datastore

使用GAE数据存储区,以下哪个选项效果最佳? (假设memcache不可用)

选项1: DataModel:实体用户有一些密钥和一个电子邮件地址(该电子邮件不能用作密钥)

a)对通过电子邮件过滤匹配的用户执行查询

或选项2:

DataModel:实体用户有一些密钥,实体UserLogin有电子邮件地址作为密钥,用户密钥

a)执行上传UserLogin,然后执行 b)使用UserLogin中的用户密钥

执行get on User

2 个答案:

答案 0 :(得分:4)

获取操作比查询快得多,更不用说执行起来更便宜了。两个get操作的序列可能比单个查询更快。例如,在状态仪表板上,get operation在10毫秒左右徘徊,而query operation在80毫秒左右徘徊 - 但如果这对您很重要,我会鼓励您对两者进行基准测试并验证自己。

答案 1 :(得分:1)

我相信选项1会更快,因为在选项2中你执行一个操作,得到结果,然后才执行第二个操作。

然而,差异可以忽略不计,除非你每天至少做几百万次。