我正在为这个拥有大量用户的网站构建一个新闻评级脚本。我正在努力使这些网站尽可能高效,现在我想知道什么是最有效的方式来跟踪投票。当然,我不希望用户多次投票。
我的第一个问题是将它存储在我的MySQL数据库中,但我担心这会对我网站的速度产生负面影响,因为这个表会变得很大。
将其存储在数据库中仍然是最佳解决方案,还是有更好的解决方案。
答案 0 :(得分:1)
如果您计划拥有> 1,000,000条记录,你应该确保表的结构是有效的(这对你的例子来说不是很难)并且你正确地索引它。
Memcached是实现缓存的最简单方法,如果您的网站增长并且需要更多服务器,则很容易扩展。
答案 1 :(得分:1)
使用正确编制索引的投票表,无论表的大小如何,都可以保持合理的性能(当然,超过某一点,您的表太大而无法放入缓存中,但这会涉及到非常大的表用户和项目数量。)
添加一些每用户缓存(在客户端,在$ _SESSION中,使用memcached),您可以获得非常快的“无”响应时间。
答案 2 :(得分:0)
Memcached将是一个非常好的方法。你需要偶尔从memcached同步(我会使用你的mysql服务器上的cron脚本使用pull模型)。
答案 3 :(得分:0)
既然你不能使用memcached,我会说这个。一个像样的数据库服务器(体面的硬件+体面的数据库实现)应该能够很好地处理这个问题。在article-id上有一个物理索引的单个表和代表投票的第二个条目将轻松处理一些googillion(是的,我用词组成)文章:P
理由:
数据库服务器维护统计信息 - 读取:自我调整 - 只有热门项目(索引+行条目)保留在内存中。
道德:
除非他们成为一个问题,否则不要担心这些事情 - 即,如果你的公司规模与facebook相当,我会担心。
答案 4 :(得分:0)