首页 >后端开发 >php教程 >高并发下,对一个表的操作insert update delete,update会失败是什么情况?

高并发下,对一个表的操作insert update delete,update会失败是什么情况?

WBOY
WBOY原创
2016-06-06 20:49:051452浏览

如标题 具体对一个表的操作如下

一个访问会包含三次操作

  1. 用户提交数据insert到一个临时表a
  2. 根据业务逻辑判断后,update的其中一个字段为3
  3. insert临时表处理后的数据到正式表b,删除临时数据

最近发现提交过于频繁的时候update操作会失败,更新无效

请问这个是什么情况下造成的,有什么解决办法么?和锁是否有关?

回复内容:

如标题 具体对一个表的操作如下

一个访问会包含三次操作

  1. 用户提交数据insert到一个临时表a
  2. 根据业务逻辑判断后,update的其中一个字段为3
  3. insert临时表处理后的数据到正式表b,删除临时数据

最近发现提交过于频繁的时候update操作会失败,更新无效

请问这个是什么情况下造成的,有什么解决办法么?和锁是否有关?

看你的临时表是什么引擎,如果是MyISAM的,建议你不要每次处理完后删除,可以给行增加一个列表明状态,然后定期删掉。

另外,insert/update/delete MyISAM引擎都会锁表,所以其他的操作都会阻塞,然后你的数据库配置了阻塞超时时间的话,可能会update失败。

我也不建议用innodb,除非你配置了 innodb_table_per_file=1。

第一个建议: 不要把临时数据放入数据库表,可以考虑放在缓存系统中。

第二个建议: 定时清理无效的数据.

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn