我有一个非常大的MySQL表,它太大了,无法经常查询(500多行)。我所做的是将我需要的结果缓存到另一个名为“recent”的表中。
在“recent”表中,模式如下所示
用户ID
页面ID
显示顺序
我在用户ID和显示顺序上放置了一个唯一的索引,因为我只想在这个表中为每个用户存储最多64条记录。因此,显示顺序只是一个高达64的整数。使用替换到更新行。
这是个好办法吗?或者,当用户点击超过64行时,我应该定期从表中删除数据。我需要把表现考虑进去。在接下来的几个月里,5亿的主表将增长到10亿,每个用户64行,这意味着“最近”的表也将非常大。。。
谢谢你的帮助。
最佳答案
如果我是你,我会认真考虑搬到一个大数据NoSQL数据库。类似于Cassandra或HBase,它们在处理大量数据时都有很好的性能。让5-10个集群节点使用MapReduce来完成工作,而不是使用一个大型的单体服务器来扫描和查找这么多记录。