如何优化MySQL insert性能

 我来答
匿名用户
2016-09-20
展开全部
优化MySQL insert性能
这个问题可深可浅,MySQL的写效率一直被人诟病。
简单的来说你可以用批量插入, insert into table (key1,key2) values(1,2),(1,2).........

当然你可能已经用这种方法了,但结果还是慢,那就先查看你用的是MyISAM还是Innodb。
如果你使用的是innodb,修改innodb缓存innodb_buffer_pool_size一般是你内存的60%, innodb_flush_log_at_trx_commit = 0或2, 提高日志更新效率; innodb_thread_concurrency 根据你CPU的核数来调整。

到最后你可能发现这些东西都不能真正的提高insert的速度,这就是被人诟病的mysql写性能。 你智能用load data infile的方式,这是一种快速的终极方法,但代价是不能保证事物处理的原子性,而且不允许在存储过程中使用。

我以前在这个问题上挣扎了很久,最终的方法是修改业务策略,数据存放尽量精简,减少对Mysql的读写,这才是终极的解决之道。我曾经头痛的难题通过修改业务逻辑把更新速度从47分钟减少到0.02秒,只要结果一样就不用去折腾Mysql了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式