条件删除数据慢的问题(mysql)

XxiaoxiaoL XxiaoxiaoL 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
SET autocommit=0;
DROP PROCEDURE IF EXISTS deleteTransfer1Scheme;
CREATE PROCEDURE deleteTransfer1Scheme()
BEGIN
DECLARE foriginStationId varchar(36);
DECLARE fterminalStationId varchar(36);
DECLARE fstationCount INT;
DECLARE num INT DEFAULT 0;

DECLARE rs_cursor CURSOR FOR SELECT originStationId,terminalStationId,MIN(stationCount) + 3 stationCount FROM tb_bus_scheme_286 WHERE transferCount=1 GROUP BY originStationId, terminalStationId;
OPEN rs_cursor;
cursor_loop:LOOP
FETCH rs_cursor INTO foriginStationId, fterminalStationId, fstationCount;
delete from tb_bus_scheme_286 where originStationId=foriginStationId AND terminalStationId=fterminalStationId AND stationCount=fstationCount;
if num=1000 then
commit;
SET num = 0;
else
SET num = num + 1;
end if;
END LOOP cursor_loop;
commit;
CLOSE rs_cursor;
END

CALL deleteTransfer1Scheme();

请问有优化的地方吗,或者条件删除大量数据的好的思路?
...全文

相关推荐

MySQL慢SQL定位指南[项目源码]

本文详细介绍了如何定位和优化MySQL中的慢SQL。首先解释了慢SQL的定义,即执行时间超过阈值的SQL语句。接着提供了定位慢SQL的具体步骤,包括设置慢查询日志、收集日志、使用EXPLAIN分析查询计划、检查索引、优化SQL语句以及执行性能测试。文章还详细说明了如何查询是否开启慢查询、设置慢查询时间限制以及如何分析慢SQL日志。最后,介绍了使用EXPLAIN命令分析SQL语句的各个参数,帮助读者全面理解SQL执行计划,从而有效优化数据库性能。

rnn9storyteller

MySQL慢SQL语句常见诱因以及解决方法

在本篇文章里小编给大家整理的关于MySQL慢SQL语句常见诱因以及解决方法,有需要的朋友们可以学习下。

weixin_38662367

mysql批量删除大量数据

主要介绍了mysql批量删除大量数据的相关资料,需要的朋友可以参考下

weixin_38719540

MySQL删除表数据的方法

在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。       如果要清空表中的所有记录,可以使用下面的两种方法:        DELETE FROM table1        TRUNCATE TABLE table1       其中第二条记录中的TABLE是可选的。       如果要删除表中的部分记录,只能使用DELETE语句。   DELETE FROM table1

weixin_38544075

mysql 一条语句删除多表数据

平时工作中可以用到的,将关联的表中的数据,用一条语句删除,节省数据库链接资源

kunlilove521
评论 3
收藏 已收藏
分享
返回顶部
XxiaoxiaoL
MySQL 57,062 成员 56,759 内容