用户限制 - 在数据库中还是直接到文件? (灵活性与性能?)

时间:2011-04-23 09:42:41

标签: php mysql performance email limit

在网站上注册的用户可以向朋友发送邀请。我想为用户可以发送的邀请数添加每日限制。

最初我刚刚在php文件中添加了限制(40),但后来我认为最好给管理员更改此限制的可能性,所以我在数据库中添加了这个限制。但现在每次用户想要发送邀请时,都会使用数据库。这会影响性能吗?

您将如何配置此功能?

2 个答案:

答案 0 :(得分:2)

TL; DR:把它放在数据库中。 :)

完整的故事:它不应该是一个性能打击。所有内容(用户本身,收件人的用户名,页面中的内容)将来自您的数据库。你不应该在乎。

如果你有一个非常大的用户群,并且它成为一个问题,我确信还有其他地方可以进行性能更新(比如使用memcached来处理所有类型的东西)。但是如果你想“缓存”它,我想你可以在登录时检索它并将其放入会话中。使用此值进行减法检查等,然后对数据库进行一次检查(在后台),以确保此用户不会发生任何奇怪的事情。但这可能是异步的,并且对用户体验没有那么大的影响。

在极少数情况下,会话说没关系,但是数据库说没有,只是向用户发送错误。反过来说,可能需要用户重新登录。但如果你正确实现它将很少甚至不可能:)

答案 1 :(得分:1)

它取决于硬件,但在MySQL标准中,400,000行表(10,000 * 40)并不是那么大。我觉得你会好的。

请确保您已明智地构建它,并根据您的描述,在存储唯一邀请代码的列上有一个索引。