php - mysql进行update操作速度慢,如何解决

 比刀郎还冲动啊 发布于 2022-11-28 01:45

数据库有个items表,现在要update其中的userid字段、
语句是UPDATEitemsSETuserid=xxxWHEREuserid=0limit1;
已经开启事务来优化时间了,但感觉还是太慢了..更新3w条花费3分钟。
早上尝试建立个temp表,将userid->items数组存入,然后写php脚本不停的查询temp表,然后操作。
但是这样执行多个脚本的时候,只有一个能活下来...而且达不到监控的效果.
现在的想法是,将更新操作分成删除和插入..正在尝试
另外问一下,php开发的话,用什么做消息队列比较好..rabbitmq的php版,找不到文档。。。

2 个回答
  • 可以用Replaceinto代替update,也可以用insertinto...onduplicatekeyupdate批量更新。

    另,附上一个RabbitmqPHP版本的demo:
    https://github.com/yuansir/ra...

    2022-11-28 02:16 回答
  • 用redis做队列吧一般都用这个。你这个sql慢应该是因为limit试着把所有要更新的数据的id取出来再去更新会好很多把

    2022-11-28 02:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有