首先让我试着描述一下我的问题。 客户端使用应用程序一年,他将大约7百万条记录存储到mysql数据库中。他的计划是继续在这个应用程序上继续工作,但是这个数据量会减慢。
当然,问题是明年会发生什么,两到五......
这是非常特殊的情况,其中~98%的数据存储在一个单独的关系表中(它是2个表之间的链接)。
在这种情况下,“最佳”解决方案是什么? Best包括安全,精心设计,最合理的解决方案,使应用程序可以长时间使用并防止出现这种情况。
我的强项:将当前表保存为历史记录表并创建一个新表,我可以存储过去3个月的记录,并在记录变旧时进行一些动作?
尊重!
答案 0 :(得分:0)
对于许多:许多映射表,请使用此处描述的提示:http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table。这将在许多情况下提高性能。
请提供正在放慢速度的SHOW CREATE TABLE
和SELECTs
。
如果大部分数据都在“链接”表中,那么查询与CROSS JOIN
有何不同?
分区很少会提高性能。再次,需要查看查询。 MERGE
是基于MyISAM的pre-PARTITION kludge。不要使用它。
历史表?查询是否寻找“最新”的东西?同样,需要查看架构和查询。