我有一个MySql表,其中包含:
数据本身包含一个约100个字符的文本+几个包含元数据的字段。索引是唯一的id,writer名称和writer ID。
到目前为止,一切顺利,但现在服务器很难处理新数据的插入(每次插入约10秒,增加约3k行)。我正试图找到克服这个问题的方法。我考虑的事情:
每个选项都有其子选项和困境,但我认为我应该首先关注一个方向。我应该走哪条路?为什么?我应该想到一条不同的道路吗?
顺便说一句 - 还有一个选项可以不保留所有数据,只保留我真正显示的部分,但这样就无法在显示数据之前对数据流程进行一些功能性更改。
答案 0 :(得分:1)
是当前最适合使用的引擎吗? 您是否考虑过http://dev.mysql.com/doc/refman/5.1/en/partitioning-management.html
答案 1 :(得分:1)
如果您每天添加3,000,000行,而3000行需要10秒的交易,那么您每天需要处理1,000笔交易,每天大约需要170分钟。那真的不是那么多。
我想我先试试
您可能会发现每个事务插入更多行实际上花费的总时间更少。如果没有,它很容易恢复。如果先将行存放在其他位置,则可以在低负载时运行INSERT事务。
无论如何调整服务器都是个好主意。有关参考,请参阅Tuning Server Parameters上的MySQL文档。