问题描述
- mysql大批量更新表,如何加快更新效率?
- 本人设计一个项目,用到数据库大量更新操作:
update db_acc_traffic set state=1 where id=1
update db_acc_traffic set state=1 where id=2
update db_acc_traffic set state=1 where id=3
update db_acc_traffic set state=1 where id=11
其中id是主键,state是要修改的列,默认为0;现在要根据指定id修改s为1.
一次要处理上万条,一条一条执行的话效率很低。而且不支持事务,除了update外同时,另外一个线程会对db_acc_traffic进行大量insert操作。请问有什么办法提升更新效率??
求高手帮助,谢谢。
解决方案
用存储过程,存储过程处理大量数据优势很明显的;还有你的语句应该修改一下:
update db_acc_traffic set state=1 where in (12311)
如果你的id是连续的,则where id>0 and id<12
如果不是连续的,而且没有办法用数学公式处理的话,还是用存储过程,慢慢写吧
解决方案二:
如果你的id有一段是有规律的,而且累加数是有规律的用SQL应该可以解决一些的,如果没有的话,那可能就要一条一条的写在存储过程里了;你可以从网上下几本
数据库语法书看看,说不定里面有解决办法
时间: 2024-10-29 20:31:06