mysql alter table 速度慢_mysql问题: alter导致速度慢 | 学步园
1 如何并行执行。
数据库里有一个数据量非常大的表,当对这个表进行alter的时候,这时候该表是只读的,由于数据量很大alter时间很长,如果这时候有insert或update操作,有什么办法在这期间可以进行insert或update操作?
MySQL在被alter时是可以insert和update的,但是操作会被延迟。以下我引用MySQL官网的解释:
*“ALTER TABLE运行时会对原表进行临时复制,在副本上进行更改,然后删除原表,再对新表进行重命名。在执行ALTER TABLE时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。
注意,如果您在执行ALTER TABLE时使用除了RENAME以外的选项,则MySQL会创建一个临时表。即使数据并不需要进行复制(例如当您更改列的名称时),MySQL也会这么操作。对于MyISAM表,您可以通过把myisam_sort_buffer_size系统变量设置到一个较高的值,来加快重新创建索引(该操作是变更过程中速度最慢的一部分)的速度。
如果您使用ALTER TABLE tbl_name RENAME TO new_tbl_name并且没有其它选项,则MySQL只对与table tbl_name相对应的文件进行重命名。不需要创建一个临时表。(您也可以使用RENAME TABLE语句对表进行重命名。”*
所以可以看出MySQL在alter时是复制表结构进行的,所以我建议你一个可以节省时间的方案:
1、create table_new ,并且包含去掉了2个多余字段+新增5字段
2、insert into table_new select * from table 复制所有的数据到新的表结构里
3、drop table ; rename table_new to table; 删掉就表,并将新表名字改成原表名
当然,当大表的alter,我建议你还是放在较少人访问的时候去处理(比如:凌晨的时候)
mysql alter table 速度慢_mysql问题: alter导致速度慢 | 学步园相关推荐
- 在线打mysql代码_mysql 在线alter table要留神_mysql
mysql 在线alter table要小心 mysql 5.6之前, alter table操作对可用性有巨大的冲击(除了纯改表名.不影响任何数据的alter table).它的原理是, 0. al ...
- mysql alter table 速度慢_MySQL中ALTER TABLE时的性能问题
当对于一个大表进行ALTER TABLE的时候,性能问题就产生了.MySQL大部分改动的步骤如下:根据新的表结构创建一个空表,从旧表中把数据取出来插入到新表中,在删除旧表.这是个非常漫长的过程.许多人 ...
- alter在MySQL中是什么意思_MySql之ALTER命令用法详细解读(转)
本文详细解读了MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强大的. USE learning;(自己要提前建好) CREATE TABLE student(id IN ...
- mysql drop table 释放空间_MySQL删除数据几种情况以及是否释放磁盘空间【转】
MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table tabl ...
- mysql drop table很慢_MYSQL缓慢的drop table 操作_MySQL
大家都知道,Ext3并不是最有效的文件系统,例如,删除文件会非常缓慢(那真是一个痛苦的过程,不是吗老兄?),造成大量的随机I / O.然而事实上,有时候它比你想象的更能影响MySQL的性能.那么,什么 ...
- mysql 注册驱动_Mysql注册驱动三种方法 | 学步园
考量了许久,决定把最近学的jdbc坐下总结,慢慢来吧,一天总结一小点,既然拖了那么久. 好,下面开始总结.(这里以mysql数据库为例) 首先就要说的是jdbc中注册驱动,首先导入对应的包,例如mys ...
- mysql 双引号报错_MySQL 双引号导致ERROR 1054 (42S22) at line 1: Unknown column
问题现象 发现监控进程获取MySQL数据的时候报错导致监控进程报错: mysql: [Warning] Using a password on the command line interface c ...
- eclipse链接mysql数据池配置_Eclipse中配置Tomcat的数据库连接池 | 学步园
前提是把需要的msutil.jar mssqlserver.jar msbase.jar mssqlserver4v65.jar 放到tomcat/common/lib下 1.把数据库JDBC驱动拷贝 ...
- mysql更改数据语句6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句(1)
ALTER TABLE 语句 ALTER TABLE更改表的结构.例如,可以添加或删除列.创建或销毁索引.更改现有列的类型.重命名列或表本身.还可以更改表特性,例如用于表或表注释的存储引擎. ●要使用 ...
- MySQL中alter table range partition
最近在用MySQL开发新功能时,使用到了alter table range partition的功能,在此总结下mysql innodb支持的alter table range partition相关 ...
最新文章
- 连云港职业技术学院有计算机系吗,连云港职业技术学院电子信息工程技术专业...
- 数据操纵语言(DML)
- 从视觉检测窥探人类大脑和数字大脑的差别
- 易语言 服务器抓包,易语言抓包获得地址实现TP路由器登陆的代码
- 有关Java 锁原理
- 图形的花样翻转(洛谷P1205题题解,Java语言描述)
- Object_C与JavaScript交互使用总结
- Linux之chmod命令
- 全局配置_中兴天机配置公布:智汇屏+全局黑暗模式
- SNOI2017 礼物
- 支持向量机(Support Vector Machine,SVM)—— 线性SVM
- vue基础-25-vue的基础面试知识
- 工程伦理2021秋期末考答案|网课期末考答案|学堂在线|清华大学李正风教授
- java还原混淆代码_飘云阁安全论坛如何还原混淆加密的JAVA代码 - Powered by Discuz!...
- 一看就懂:正则表达式
- Windows 中剪贴板的操作
- Bluefish 1.1.3
- 【uva12345】Dynamic len
- 计算机桌面体验,如何安装win10的桌面体验功能?
- 马踏棋盘问题的程序c语言,C语言马踏棋盘
热门文章
- itext7中文开发文档(二)
- java restlet 教程_java – Restlet Protocol.FILE用法
- 为知笔记linux输入中文,为知笔记wiznote无法输入中文,fcitx输入法问题解决
- 如何对接GN EDI系统?
- 力软敏捷开发框架7.0.6源码
- 【C#】Newtonsoft.Json 常用方法总结
- html 设计页面,HTML5网页设计
- p6s与onvif_大华的录像机添加海康摄像头,使用了onvif协议,为啥也添加不进去?...
- python3菜鸟教程
- cr3格式是什么意思_如何用PS导入佳能CR3格式图片?