我正在编写一个 Intranet 应用程序,其功能之一大致类似于内容投票 - 与 SO、Amazon 和许多其他网站的做法不同。
假设每个可投票的内容都有一个唯一的 ID,并且每个用户(他们经过身份验证)都有一个唯一的 ID,最简单的方法似乎是有一个“投票”表......
ContentID int
UserID int
VoteValue int
但这会为每次投票创建一行 - 拥有数百万条内容和数以万计的用户,该表将变得非常巨大。这是最好的方法吗?我的意思是,如果 int 占用 4 个字节,则每行占用 12 个字节。如果一百万条内容获得一百票,那么存储空间就超过 400MB,是吗?看起来...很多:)。即使 VoteValue 是一个tinyint(这可能没问题)并且只有 1 个字节,表中仍然有几百兆字节。我的意思是谢什。
有更聪明的方法吗?我是否应该将此“投票”表存储在单独的数据库中(忽略潜在的数据完整性问题),以便在存储和性能方面将其与“主”数据分区?
(我确实意识到,在当今世界,400MB 并不是很多 - 但仅仅为了存储选票似乎就很多了,是吗?)
嗯,是的,但你需要着眼于更大的前景。拥有一百万条内容:
(内容大小)>>(投票大小):其中“>>”表示“大得多”。
如果您有 100 万条内容,那么这可能是 1 TB 的数据,而投票则为 400 MB。有什么大不了的吧?
我还想补充一点,如果您担心可扩展性,请查看此博客:
http://highscalability.com/ http://highscalability.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)