我的场景:MySQL8有个表数据量超1亿,然后我要根据某个例(一对多)删除数据,

我直接用:delete from 表 where 字段 in (select 其他表)     条件用in的方式执行报错

[Err] 1206 - The total number of locks exceeds the lock table size

因为一次性要删除数据量太多了,每个都加了行锁,所以报错了,而且这样效率也不高,不稳定。

所以写了个存储过程的方式来删除数据:

概述:

1.先查出删除条件 in 的范围值

2.将in值存储到游标,然后一个一个循环

3.根据循环值 删除表数据(一对多,索引列)

这样不是一次性删除,不用担心mysql表行锁的问题,运行也稳定不会出错,效率也是最高的

CREATE DEFINER=`root`@`%` PROCEDURE `clean_old_defectData`()
BEGIN#Routine body goes here...DECLARE COILNO VARCHAR(255);DECLARE COILNO_CURSOR_COUNT INT DEFAULT 1;-- 先查出删除条件 in 里面的值(我的是DELIVERYCOILNO),放到游标里DECLARE COILNO_CURSOR CURSOR FORSELECT DELIVERYCOILNO FROM qualitydb.t_sg_mat_info WHERE STARTTIME BETWEEN '2021-01-01' AND '2021-07-01';-- 设置循环的次数(游标的大小)DECLARE EXIT HANDLER FOR NOT FOUND SET COILNO_CURSOR_COUNT = 0;OPEN COILNO_CURSOR;-- 循环游标WHILE COILNO_CURSOR_COUNT <> 0 DOFETCH COILNO_CURSOR INTO COILNO;-- INSERT INTO qualitydb.test(val2) VALUES(COILNO);-- 删除表数据,我这里有两个表要删除DELETE FROM qualitydb.t_sg_defect_info WHERE DELIVERYCOILNO = COILNO;DELETE FROM qualitydb.t_sg_defect_quality_result WHERE coil_id = COILNO;END WHILE;CLOSE COILNO_CURSOR;
END

MySQL单表数据量超1亿,根据 索引列 批量删除数据相关推荐

  1. flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...

    简介: 友信金服公司推行全域的数据体系战略,通过打通和整合集团各个业务线数据,利用大数据.人工智能等技术构建统一的数据资产,如 ID-Mapping.用户标签等.友信金服用户画像项目正是以此为背景成立 ...

  2. Mybatis 如何批量删除数据

    Mybatis如何批量删除数据 本期以最常用的根据id批量删除数据为例: 接口设计1:List类型单参数 Integer deleteByIds(List<Integer> ids); 接 ...

  3. MySQL单表数据量过千万,采坑优化记录,完美解决方案

    MySQL单表数据量过千万,采坑优化记录,完美解决方案 参考文章: (1)MySQL单表数据量过千万,采坑优化记录,完美解决方案 (2)https://www.cnblogs.com/ExMan/p/ ...

  4. mysql 单表最多能存多少数据?

    这里最近在做数据库的分库分表,在操作过程中发现一个问题,使用mycat分表,发现单表只能存500万数据,于是有了疑问? mycat只能做500万的数据分表吗? 于是在本地模拟了一下,新建了一个数据表去 ...

  5. MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

    今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...

  6. 互联网日报 | 快手电商8月订单量超5亿单;阿里犀牛智造正式亮相;中通快递启动香港首次公开募股...

    今日看点 ✦ 快手电商8月订单量超5亿单,过去一年订单总量位列电商行业第四 ✦ 中通快递启动香港首次公开募股,将发行4500万股股票募121亿港元 ✦ 荣耀首款游戏本猎人本V700发布,正式进军游戏本 ...

  7. 弘辽科技:月订单量超5亿单的背后,标志着快手已成电商第四极

    原标题<弘辽科技:月订单量超5亿单的背后,标志着快手已成电商第四极> 弘辽科技获悉:9月16日,快手电商官宣称8月份其电商订单量超5亿单.而在过去的12个月里,快手累计的电商数据,单从订单 ...

  8. mysql 单表2000多万条数据,模糊查询如何秒回

    mysql 单表数据2000多万,没有分区.没有表.没有分库,表存储的是企业信息,例如:企业名称.经营范围.注册地址等信息.现在需要通过关键词模糊匹配企业名称,搜索出匹配的数据.因为模糊匹配,所以直接 ...

  9. 数据库性能优化—MySQL单表最大记录数超过多少时性能会严重下降

    以前没有想过MySQL数据库的单表最大行数,直到最近interview时被问到c语言中int类型的最大值是多少时才想到Mysql单表最大行数的问题. 一开始被问到C语言中int类型的最大值有点懵逼,一 ...

最新文章

  1. couchdb 垂直权限绕过漏洞(cve-2017-12635)
  2. 题目1169:比较奇偶数个数
  3. java根据经纬度坐标计算两点的距离算法
  4. Hibernate4一对多关系映射(自身关联)
  5. object-c中的bool
  6. OperationalError: (1044, Access denied for user ''@'localhost' to database 'mydb')
  7. 【转载】应广大群众的要求,今天开始连载《超容易的Linux系统管理入门书》一书...
  8. 安卓python安装库_如何快速在安卓上搭建python3环境
  9. 阿凡达时隔十年重映,王者归来还是炒冷饭?Python爬取上千条评论并分析
  10. C++ 引用计数技术简介(1)
  11. mfc遍历指定文件夹下的所有文件并排序
  12. springboot中Word转PDF技巧
  13. echarts折线图鼠标悬浮竖线_设置Echarts鼠标悬浮样式
  14. HBuilder常用的快捷操作
  15. python类似图片查找_python检测相似图片
  16. 安卓和iOS的兼容性问题: 键盘弹起时,固定在底部的按钮是否被弹到键盘上方
  17. JAVA应该怎么学?
  18. http1 http2 http 3 区别
  19. [Computer Architecture读书笔记] H.2 Detecting and Enhancing Loop-Level Parallelism
  20. 如果让你只推荐一本nbsp;Javaamp;nbs…

热门文章

  1. 达梦数据库-新建数据库,模式,用户
  2. NENU 模拟练习题(问题A~问题G)
  3. Hibernate Compatibility Matrix
  4. 影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入
  5. 从算子角度理解优化方法
  6. LeetCode 55. Jump Game
  7. Android手机蓝牙互联,并传递数据。
  8. 沉默的螺旋理论(转载)
  9. Java通俗易懂30天 第30天:Java9- 14 新特性
  10. 【EasyExcel】使用easyExcel过程中,项目报错的解决集合