处理具有数百万条记录更新和大读数的MySQL表的最佳方法

时间:2015-09-18 21:44:15

标签: mysql database database-design

我有一张大约有500万条记录的表格,每次更新都会更新(每分钟大约10.000条记录)。

从另一方面来说,我必须经常阅读那张桌子。幸运的是,我不需要“现在”的数据,我可以“缓存”它(基于此的可靠解决方案),但不超过20秒。

这可能导致表锁定,我害怕...任何解决方案?

我考虑过离开桌面只是为了更新问题,并制作一个VIEW将所有数据复制到一个专门用于阅读的表中,但这是一个很大的表,它需要花费太多时间。

还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

你有很多事情没有告诉过我们。表的结构,更新的性质,数据库引擎,底层硬件,成本和时间的约束,解决方案所需的重新安排,以及您已经尝试识别核心问题的说明。这不是分享此邀请的邀请 - 我们can't advise on capacity planning,甚至描述basic steps for performance tuning超出了此处帖子的范围。

我希望人们会投票决定关闭这个,但我会给你一些指示:

  1. 构建测试流量并测量性能的功能,这样您就不会在调整过程中浪费时间。

  2. 表锁定只应该是myisam上的问题,而不是其他引擎。

  3. 使用处理程序api连接到数据库,理想情况是通过基于事件的守护程序,该守护程序可以将更新聚合到更少的逻辑操作中。

  4. 注意如何配置存储空间。

  5. 设置asynch复制到从属节点并对其进行读取。