1

我们距离推出我们的新网站只有几天的时间,因此我们开始对开发过程进行最后的润色。尽管由于我们努力优化应用程序的每个部分,一切都很好,但我的合作伙伴提出了一个关于 mysql 数据库大小的问题,以及随着时间的推移我们可能会遇到的问题。更具体地说,我们构建了不喜欢的功能(cfc、jquery),如果我们设法吸引大量访问者,它虽然可以完美运行,但会显着增加数据库大小。

这是我们的逻辑:
- 每个用户只能对一篇文章投一次票(投赞成票或投反对票),因为我们将 IP 存储在数据库中
- 假设 10 000 名用户访问网站并为 10 个帖子投票,即 100 000 次插入(通过存储过程)和我们数据库中的 100 000 行。数一数 10,100 或 1000,您就知道了。

votes 表有 4 个列
- typeID(voteUp = 1 和 voteDown = 2)
- articleID
- IP
- vCount(我们用它来计算 SUM,每篇文章有多少票)

我们错过了这里的重点吗?根据您的经验,处理此类功能的最佳方法是什么?

4

1 回答 1

1

我会说你的方法没有错。假设您的数据存储容量不太有限,您不应该长时间用完空间。

您当然可以每篇文章只使用一条记录,但是当每次用户投票时需要锁定记录以进行更新时,这可能会造成瓶颈。

您可能会考虑在投票表中添加日期/时间字段,以存储记录投票的时间。通过为每篇文章创建一个包含一行的附加表来跟踪总体投票,您可以查询所有早于 12 个月的投票,相应地更新您的新表,并从投票表中删除旧投票。将该功能填充到计划任务中,您就完成了。这样,您将丢失 IP 信息(在 12 个月或您选择的任何时间跨度之后),但会取回一些存储空间。

于 2013-10-15T11:54:02.980 回答