背景

将测试环境的表同步到另外一个数据库服务器中,但有些表里面数据巨大,(其实不同步该表的数据就行,当时没想太多),几千万的数据!!

步骤

1. 既然已经把数据同步过来的话,那就直接delete掉就行,多大的事呢? 于是

delete from table_name where 1=1;

结果傻眼了,执行了一会儿就卡死了,对卡死了!

2. 那么问题来了,是不是死锁了呢?那怎么判断死锁呢?

SHOW PROCESSLIST;

执行这个命令可以查看数据库当前的进程

3. 查看当前的事物

#当前运行的所有事务
mysql> SELECT * FROM information_schema.INNODB_TRX; #当前出现的锁
mysql> SELECT * FROM information_schema.INNODB_LOCKs; #锁等待的对应关系
mysql> SELECT * FROM information_schema.INNODB_LOCK_waits;

如果你是linux上直接执行mysql命令的话可以这样执行

SELECT * FROM information_schema.INNODB_TRX\G
这样的话会换行展示数据,更人性化

4. 可以通过kill命令来干掉一些数据库的进程

kill 2;

这样既可,这样只是解决了卡死的问题,执行同样的命令还是会卡死的 ;

5. 那就想想为什么会卡死呢 ?原来有个这么一个参数

一般等待超时的时候会抛出这样的异常:

Lock wait timeout exceeded; try restarting transaction

是因为mysql的话,默认锁等待时间是50s,就是说50s后就会报错,所以需要修改下个时间

mysql的配置一般都是在my.cnf文件中,自己找下

新增/修改innodb_lock_wait_timeout=500既可

6. 修改后重启mysql,这里面又涉及到mysql的关闭

bin/mysqladmin -uroot -p shutdown

就关闭了sql的,不建议直接kill -9 ,不知道会出现什么幺蛾子

重启的话,还是用mysql_safe去启动既可

7. 其实把,删除表数据的话,用truncate就行的 ,

truncate table table_name;

8. 那么就比较下 drop,truncate,delete的区别吧

  a. drop是整个表都没有了的,表结构也没没有了的,truncate和delete的表结构还在;

  b. delete可以指定where条件删除哪一行,truncate是整个表的;

  c. 来百度一下,^_^

  

1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop>; truncate >; delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及

mysql 删表引出的问题的更多相关文章

  1. MySQL的奇怪的删表数据文件而表照样能打开

    MySQL的奇怪的删表数据文件而表照样能打开 author:headsen  chen      2017-11-02   17:57:17 现象:删除一个正在运行的mysql数据库的表的数据文件:* ...

  2. Mysql - 存储过程 - 定时删表

    在工业监控里面, 需要对每天的数据, 进行记录, 时间长了之后, 数据库很容易撑爆. 这时候, 如果允许, 可以对之前的数据进行一次清除, 只记录几个月内的数据. delimiter $ DROP P ...

  3. MYSQL删除表的记录后如何使ID从1开始

    MYSQL删除表的记录后如何使ID从1开始 MYSQL删除表的记录后如何使ID从1开始 http://hi.baidu.com/289766516/blog/item/a3f85500556e2c09 ...

  4. Mysql分表和分区的区别、分库分表介绍与区别

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这 ...

  5. mysql分表与分区表

    mysql分表与分区表 转自:http://blog.51yip.com/mysql/949.html   一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具 ...

  6. mysql分表,分区的区别和联系

    一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘 ...

  7. Mysql分表和分区的区别

    一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘 ...

  8. 设置MySQL数据表主键

    设置MySQL数据表主键: 使用“primary key”关键字创建主键数据列.被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合.如下SQL语句所示: My ...

  9. MySQL多表查询之外键、表连接、子查询、索引

    MySQL多表查询之外键.表连接.子查询.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为 ...

随机推荐

  1. zabbix触发器函数 count

    转摘至梅总文章 一直没用过这个函数,今天研究了下,确实很有用(用过的忽略): 之前很多功能都是用max,min,avg曲线实现的,其实用count最合理(如典典刚用的高防持续N次ping超时).   ...

  2. IO在block级别的过程分析

    btt User Guide在百度找了3天没找到,bing也不行,结果google第一页第5个结果就是. 可恶的GFW http://www.fis.unipr.it/doc/blktrace-1.0 ...

  3. Spring Boot使用@Scheduled定时器任务

      摘要: Spring Boot之使用@Scheduled定时器任务 假设我们已经搭建好了一个基于Spring Boot项目,首先我们要在Application中设置启用定时任务功能@EnableS ...

  4. centos7 二进制安装MySQL5.7.22

    1.详细描安装的过程 1.1关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service ...

  5. AnyConnect removes "Connections" tab from IE Settings solution

    I have an ASA 5510 that we use for SSL VPN Client access.  The ASA distributes the AnyConnect (v2.4. ...

  6. 下拉列表插件bootstrap-select使用实例

    网页实例 http://www.jq22.com/yanshi302 使用bootstrap-select插件来实现下来菜单搜索匹配功能,如图 实现代码如下 <html> <head ...

  7. Spring Cloud Config配置中心的使用

    一.概述 1. 为什么使用? 1> 配置文件太多,不方便维护 2> 配置文件一般都保存这各种明文显示的密码,无法保证配置内容的安全性,也无法做到按权限分配给个人 3> 更新配置项目需 ...

  8. tomcat启动一闪而过,调试tomcat

    参考地址:https://blog.csdn.net/baidu_32739019/article/details/64155136

  9. spring boot 1

    1.创建项目. meven可以配置阿里云meven镜像 <mirror> <id>nexus-aliyun</id> <mirrorOf>central ...

  10. python报OperationalError: (1366, "Incorrect string value..."的问题解决

    一.环境及问题描述 1. 环境 操作系统:win10,64bit. python版本:2.7.15 mysql版本:5.7.23 2. 问题描述 使用python从某个数据文件读取数据,处理后,用My ...