我有一张大约有500万条记录的表格,每次更新都会更新(每分钟大约10.000条记录)。
从另一方面来说,我必须经常阅读那张桌子。幸运的是,我不需要“现在”的数据,我可以“缓存”它(基于此的可靠解决方案),但不超过20秒。
这可能导致表锁定,我害怕...任何解决方案?
我考虑过离开桌面只是为了更新问题,并制作一个VIEW将所有数据复制到一个专门用于阅读的表中,但这是一个很大的表,它需要花费太多时间。
还有其他想法吗?
答案 0 :(得分:1)
你有很多事情没有告诉过我们。表的结构,更新的性质,数据库引擎,底层硬件,成本和时间的约束,解决方案所需的重新安排,以及您已经尝试识别核心问题的说明。这不是分享此邀请的邀请 - 我们can't advise on capacity planning,甚至描述basic steps for performance tuning超出了此处帖子的范围。
我希望人们会投票决定关闭这个,但我会给你一些指示:
构建测试流量并测量性能的功能,这样您就不会在调整过程中浪费时间。
表锁定只应该是myisam上的问题,而不是其他引擎。
使用处理程序api连接到数据库,理想情况是通过基于事件的守护程序,该守护程序可以将更新聚合到更少的逻辑操作中。
注意如何配置存储空间。
设置asynch复制到从属节点并对其进行读取。