mysql删除大表的部分数据

好久没写博客。最近项目要上线。下班时间还得陪着老妈。实在没时间更新。

今天有人提了一个问题,  www.2cto.com

一个表有1亿6000万的数据,有一个自增ID。最大值就是1亿6000万,需要删除大于250万以后的数据,有什么办法可以快速删除?

当时看了一眼数据吓尿了,这么大的数据要删除到什么时候啊,最要命的锁表肿么办

delete是不行了,加索引也别想。mysql上delete加low_priorty,quick,ignore估计也帮助不大

看到mysql文档有一种解决方案:https://dev.mysql.com/doc/refman/5.0/en/delete.html

If you are deleting many rows from a large table, you may exceed the lock table size for an InnoDB table. To avoid this problem, or simply to minimize the time that the table remains locked, the following strategy (which does not use DELETE at all) might be helpful:

Select the rows not to be deleted into an empty table that has the same structure as the original table:

INSERT INTO t_copy SELECT * FROM t WHERE ... ;

Use RENAME TABLE to atomically move the original table out of the way and rename the copy to the original name:

RENAME TABLE t TO t_old, t_copy TO t;

Drop the original table:

DROP TABLE t_old;

E文不好,简单的翻译下:

删除达标上的多行数据时,innodb会超出lock table size的限制,最小化的减少锁表的时间的方案是:

1选择不需要删除的数据,并把它们存在一张相同结构的空表里

2重命名原始表,并给新表命名为原始表的原始表名

3删掉原始表

总结一下就是,当时删除大表的一部分数据时可以使用 见新表,拷贝数据,删除旧表,重命名的方法。

mysql快速删除大表数据部分数据_mysql删除大表的部分数据相关推荐

  1. mysql删除表后清空索引_MySQL删除语句比较,清空表数据,重置自增长索引

    drop truncate delete 程度从强到弱 1.drop table tb drop将表格直接删除,没有办法找回 2.truncate (table) tb truncate 删除表中的所 ...

  2. mysql全表重命名备份_Mysql数据库和表的常用操作以及数据备份恢复

    数据库 查看所有数据库 show databases; 使用数据库 use 数据库名; 查看当前使用的数据库 select database(); 创建数据库 create database 数据库名 ...

  3. mysql删除数据怎么回退_mysql 删除整个数据库

    ibdata1瘦身要注意的问题 错误方法一:导入数据库后,只是数据库test增大了而已,ibdata1还是默认的11M 1.只删除ibdata1或则ib_logfile0和ib_logfile1 2. ...

  4. mysql查询一周内数据并分组_mysql 统计本周7天的数据并分组

    今天写到项目的一个数据展示模块,最终要呈现的效果是用柱状图显示本周七天的访客数量,所以要给前端本周7天的数据 比如今天是周二(实际上也是),我们要给前端周一周二的数据,后面周三到周日因为还没到,数据置 ...

  5. mysql表分区占用存储_MySQL 分区分表应用场景分析和分区中可能遇到的坑点

    MySQL的分区和分表应用场景分析 在日常工作中当我们的某张表的数据量过大的时候,首当其冲的可能就是进行分区和分表,但是是如何分区或者分表都要结合一点的业务场景下进行分析,才会显著的提升性能,来聊一聊 ...

  6. mysql 建表时建立索引_mysql 分享建表和索引的几点规范

    一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. ...

  7. 的table数据重复添加_Mysql的奇技淫巧 - 避免重复插入数据

    Mysql的奇技淫巧 - 避免重复插入数据 MySql 避免重复插入数据 通常那我们插入一条带有唯一性字段数据的时候,我们先去查一下数据库有没有相同数据,需要操作2次数据库,总感觉这样做特别的low, ...

  8. mysql多表查询注意事项_MySQL的多表查询

    一.表的加法 关键词union和union all 用来合并表,其中,union 去重,union all 不去重. 例如:将course和course1两张表合并 两张表的数据分别如图所示:cour ...

  9. mysql中表与表的关系代码_mysql 中表与表之间的关系

    如何找出两张表的对应关系 分析步骤: 1.先找出左表的角度去找 ​ 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段 (通常是id) 2.再站 ...

  10. mysql删除表并释放空间_Mysql删除数据后,如何释放磁盘空间

    ####此时可以使用optimize整理表的碎片: #####注意:该操作执行的时候会把该表格先写入一个tmp临时表,所以磁盘剩余空间必须大于表空间,否则会执行失败. ``` alter table ...

最新文章

  1. [k8s] 第二章 十分钟带你搭建k8s集群环境
  2. php笔记之表单验证
  3. 2020-11-19
  4. Bootstrap+Angularjs自制弹框
  5. maven生命周期入门
  6. ASP.NET MVC3官方示例Music Store(音乐商店) --简易中文教程
  7. request.getParameter、request.getParameterValues、request.getParameterMap用法详解
  8. discuz模板机制解析
  9. 动态内存分配算法:首次适应算法,循环首次适应算法,最坏适应算法,最佳适应算法实现
  10. 锁屏中如何实现屏蔽home键
  11. 国产操作系统银河麒麟V10桌面版新手小白常见问题
  12. tiny4412移植uboot-2019-01(三)
  13. 程序员想兼职赚钱?这几个渠道你一定要知道?
  14. 效率评价方法--数据包络分析
  15. 【转】Android Protobuf应用及原理
  16. 01.JS基础_前端的语法(4)
  17. 【深度学习(deep learning)】花书第10章 序列建模:循环和递归网络 读书笔记
  18. java自动适应窗口大小_Java Swing界面如何动态调整大小(自适应)
  19. RGB YUV [转]
  20. M1 系统打包ipa

热门文章

  1. ubuntu 自动加载ko_开屏广告太烦人?用这个只有 2M 的 App,助你自动跳过 5 秒等待...
  2. 过磅系统更换服务器,无人值守过磅系统改造方案
  3. Redis的超时命令和垃圾回收策略
  4. Redis链表结构深入
  5. C++ const对象
  6. C语言高级输出及进阶
  7. python堆模块_python内置堆模块
  8. python发邮件详解_python:利用smtplib发送邮件详解
  9. oracle 触发器 行级,oracle的行级触发器使用
  10. 沉降观测曲线图 沉降观测汇总_这些沉降观测要求,工程人必须掌握!