具有 180 个属性的分片计数器
Sharding counters with 180 properties
数据存储中每个实体有 180 个 Integer/Long 类型的未索引属性(列)听起来很糟糕吗?
出于分析原因,我需要计算每个用户每天节省的 6 个请求,我正在根据分片计数器文章和网络广播做所有事情:
https://cloud.google.com/appengine/articles/sharding_counters
所以基本上每天有 6 个值递增每个新请求,所以我在考虑:
每月1种
6 种分析类型 * 月日 = 180
Google 数据存储属性中的多少算太多?
谢谢
可能不是个好主意。
请记住,每次您想要更新单个 属性 值时,整个 实体都必须重写(即从数据存储中检索,反序列化、更新、重新序列化并重新发送到数据存储)。实体越大,性能越慢。
恕我直言,在这种情况下,拥有多个小实体比拥有一个大实体要好。可以将一个大实体拆分为多个较小的实体,彼此有效关联 - 参见
按照同样的思路,我相信甚至可以找到一种方法将日期信息和用户 ID 编码为唯一的自定义密钥 ID,以便于访问。像 <userid>_YYMMDD
或只是 <userid>_DD
数据存储中每个实体有 180 个 Integer/Long 类型的未索引属性(列)听起来很糟糕吗?
出于分析原因,我需要计算每个用户每天节省的 6 个请求,我正在根据分片计数器文章和网络广播做所有事情: https://cloud.google.com/appengine/articles/sharding_counters
所以基本上每天有 6 个值递增每个新请求,所以我在考虑:
每月1种 6 种分析类型 * 月日 = 180
Google 数据存储属性中的多少算太多?
谢谢
可能不是个好主意。
请记住,每次您想要更新单个 属性 值时,整个 实体都必须重写(即从数据存储中检索,反序列化、更新、重新序列化并重新发送到数据存储)。实体越大,性能越慢。
恕我直言,在这种情况下,拥有多个小实体比拥有一个大实体要好。可以将一个大实体拆分为多个较小的实体,彼此有效关联 - 参见
按照同样的思路,我相信甚至可以找到一种方法将日期信息和用户 ID 编码为唯一的自定义密钥 ID,以便于访问。像 <userid>_YYMMDD
或只是 <userid>_DD