处理线上项目遗留的垃圾表(俗称阑尾工程)时会出现:

1.数据不需要了,但是还很大,可以找个空闲的时间直接truncate掉

2.代码还没有清理,数据还有写入,他们还是需要表结构的,你要是rename,会引起程序报错。

但是我们知道truncate table 的本质就是drop table + create table,而且DDL是不涉及事务的,

那我们是不是可以 rename + create来做这个操作呢?

先说结论:

不可以

环境:



测试如下:

1.我们用sysbench来模拟线上的读写,sysbench脚本如下:

 sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1  --mysql-socket=/data/mysqldata/mysql.sock  --mysql-port=3306 --mysql-user=root --mysql-db=test  --table_size=10000000 --tables=2 prepare

2.执行truncate

我们发现sysbench并没有报错。count一下发现数据也在正常写入

现在测试rename table + create table ,这里我们用navicat 一起执行;

发现sysbench 报错了 找不到这个表,

虽然执行很快但是对于由业务操作的表来说 第二种方法还是不行的。

扩展:

虽然sysbench报错了但是sysbench并没有退出 , 应该是在尝试连接之后继续准备第二个表的数据。

如上图

truncate table AND rename table + create table测试相关推荐

  1. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别...

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  2. create table as select性能测试

    转载自:http://blog.csdn.net/yangzhijun_cau/article/details/7396088 ------------------------------------ ...

  3. MySQL 的create table as 与like 的使用

    1.MySQL复制相同表结构的方法: -- 1.使用AS复制相同的表结构CREATE TABLE table_name AS SELECT * FROM other_table WHERE 1=2;( ...

  4. mysql创建表语句like_MySQL 的create table as 与like 的使用

    1.MySQL复制相同表结构的方法: -- 1.使用AS复制相同的表结构 CREATE TABLE table_name AS SELECT * FROM other_table WHERE 1=2; ...

  5. mysql create table()_MySQL Create Table创建表

    表的创建命令需要: 表的名称 字段名称 定义每个字段(类型.长度等) 语法 下面是通用的SQL语法用来创建MySQL表: CREATE TABLE table_name (column_name co ...

  6. mysql create很多table,SQL CREATE TABLE 语句

    原标题:SQL CREATE TABLE 语句 SQL CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. 表由行和列组成,每个表都必须有个表名. SQL CREAT ...

  7. quartz 任务调试 建表 sql 语句、create table语句

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; DROP TAB ...

  8. oracle insert into as select,比较create table as select * 与 insert into table select *

    实验环境: SYS@aaron> select * from v$version; BANNER ------------------------------------------------ ...

  9. mysql table as_Mysql中create table as与like命令的区别

    MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准 ...

  10. Oracle 学习笔记二 Create table

    1.创建用户 create user hfy identified by hfy; 2.在该用户下建表 建表必须满足权限和表空间: 首先连接sys账户,grant create session to ...

最新文章

  1. linux内核丢弃udp报文,c++ Linux UDP数据包丢失的原因
  2. Sentinel 发布里程碑版本,添加集群流控功能
  3. 高度随宽度适应的响应式方案
  4. 快排堆排归排三种排序的比较
  5. 【Qt】2D绘图之复合模式
  6. C#LeetCode刷题之#686-重复叠加字符串匹配(Repeated String Match)
  7. .NET Core版本揭秘
  8. ensp ftp服务器配置文件,ensp配置ftp服务器,显示连接失败。
  9. 面向对象程序设计之封装性、继承性、多态性
  10. mPaSS小程序 路由跳转
  11. Qt Design Studio组态软件简介及源码下载
  12. 向军php视频教程下载,向军hd框架视频教程,后盾网框架下载
  13. PHP遍历数组,分别将内容加入到table表格中
  14. c语言报数问题程序,转圈报数问题(C语言):有n个人围成一圈,顺序排号……...
  15. typescript - 一种思维方式(推荐阅读)
  16. PyQt5快速开发与实战 5.2 容器:装载更多的控件
  17. 吃什么蔬菜可以清理血管垃圾
  18. 软件开发过程中的各种文档
  19. 淘宝、京东、苏宁、拼多多、1688各大电商API接口详情( API 返回值说明,数据分析)
  20. Python-Python编码规范(PEP8)

热门文章

  1. 腾讯运维专家的自我修养
  2. 【课程笔记】李弘毅2020 Deep Learning for Human Language Processing
  3. 知乎ajax采集,胖鼠采集WordPress插件教程-WP自动采集和发布简书,微信公众号,知乎等任意网站...
  4. 【论文笔记】Towards Privacy-Preserving Affect Recognition: A Two-Level Deep Learning Architecture
  5. VMWare 移动Linux CentOS 7虚拟机后连不上网怎么办
  6. 2014华为实习生招聘机试题
  7. K2 BPM介绍(1)
  8. 四维图新地图坐标_一种融合双目视觉和差分卫星定位的地标地图生成方法与流程...
  9. C#——获取银行卡所属银行,验证银行卡号是否正确
  10. Onenote笔记转换为Markdown文本