如何在googleappengine中有效地扩展数据库?

2024-05-23 19:24:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用googleappengine pythonsdk开发我的第一个web应用程序。你知道吗

我知道GAE处理伸缩性,但我只想知道我是否在考虑数据库设计的正确方法。你知道吗

例如,如果我有一个存储所有用户名、散列pw等的User类,我会想象一旦我有很多用户,从这个User类读取就会很慢。你知道吗

我是否可以将它拆分成一个UserA类来存储以a开头的用户名的所有用户信息,而不是一个庞大的用户数据库?所以我会有一个UserA类,UserB类,等等。这会让用户读写更高效吗?你知道吗

如果我在我的应用程序上销售衣服,而不是有一个服装类,我会按类别划分,这样我就有一个只存储衬衫的ShirtClothing类,一个只存储裤子的Pantscothing类,等等?你知道吗

我走对了吗?你知道吗


Tags: 方法用户web信息数据库应用程序用户名pw
1条回答
网友
1楼 · 发布于 2024-05-23 19:24:04

I'd imagine that once I have many users, reading from this User class would be slow.

不,阅读一定数量的条目需要相同的时间,不管有多少其他未读条目,很少或数以百万计的条目。你知道吗

相反,如果在给定查询上只需要实体字段的子集,请考虑projection queries。你知道吗

“分片”(例如按用户姓名、服装类别等)通常不会提高应用程序的可伸缩性。如果您需要基于多个不等式的查询,则可能会出现一个例外:数据存储在本机上只支持每个查询的一个字段上的不等式约束,而一些切分可能有助于缓解这种情况。但是,就像所有的反规范化一样,这完全取决于应用程序:您需要执行哪些查询,有哪些性能约束/目标。你知道吗

有关可伸缩性实践的一些好提示,请考虑有关该主题的Google's own essays。你知道吗

相关问题 更多 >