paip.解决 数据库mysql增加列 字段很慢添加字段很慢
paip.解决 数据库mysql增加列 字段很慢添加字段很慢
#环境如下:
mysql5.6 数据仅仅3w
alter table xxx add column yyy int default 0;
添加字段很慢,好几份中都没有好。。
#原因以及解决
[SQL] alter table grejx_def add column flag12 int default 0;
受影响的行: 0
不是那种lock--copoy--rewrite的方式.effeic row sh 0 ,为甚还是这么慢的是??
Oracle 11g的快速加字段功能就是好啊..
数据结构紊乱兰,只要不个table 优化给挂走ok兰。。
字谣0.3s走ok兰..
作者 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
#mysql数据库添加字段或者修改结构过程如下
由于mysql在线ddl(加字段、加索引等修改表结构之类的操作)过程如下:
A.对表加锁(表此时只读)
B.复制原表物理结构
C.修改表的物理结构
D.把原表数据导入中间表中,数据同步完后,锁定中间表,并删除原表
E.rename中间表为原表
F.刷新数据字典,并释放锁
添加字段很慢
alter table grejx_def add column flag int default 0;
#大的数据哈的解决
##停掉mysql服务器来修改表结构。然后进行滚动式更新
Facebook数千台MySQL服务器在过去增加个索引需要几个月的滚动升级(后来他们自己开发了后面提到的工具,只需要几天)
##在加字段之前进行测验mysql是否复制表,以减低应用卡死的风险:
在命令结束之后看看显示“rows affected “的值。例如,这里您可能会看到在做不同类型的DDL操作:
拷贝表结构,然后插入少量的数据。去修改表结构。看影响的行。如果为0,则表示不会拷贝中间表的方式
##关于online-schema-change
是percona推出的一个针对mysql在线ddl的工具
#新的思路(手动执行mysql的过程)
1:手动的创建好修改后的表结构 NEW_TAB。(比如新增字段,修改表字段类型。删除表字段,可以一并一次性搞定)
对于MyISAM表,您可以通过把myisam_sort_buffer_size系统变量设置到一个较高的值,来加快重新创建索引(该操作是变更 过程中速度最慢的一部分)的速度。
2: 选择性的将旧表OLD_TAB数据插入到修改后的表。(这里需要注意的是海量数据的处理。可以将表记录按照主键分批进行插入处理,其实在如果分表处理的话,在业务代码中也是可以进行修改处理的,分而治之。)
3:rename表名称。 (这里需要注意的是RENAME过程中的锁表,可以在业务空闲的凌晨晚上进行处理)。
#参考
mysql在线修改表结构大数据表的风险与解决办法归纳 - 王滔 - 博客园.htm
一个资料介绍online-schema-change这个工具,
MYSQL 在线DDL操作是否copying data - zuoxingyu - 博客园.htm
paip.解决 数据库mysql增加列 字段很慢添加字段很慢相关推荐
- mysql 增加列 before_mysql添加、修改、删除字段
一.添加字段 1.添加单个字段 格式: ALTER TABLE 表名 ADD COLUMN 字段名(name) 字段类型长度(VARCHAR(20)) 编码规则(CHARACTER SET utf8) ...
- greenplum 数据库如何增加列_Greenplum行存与列存的选择以及转换方法-阿里云开发者社区...
背景 数据在数据库中的存储形式多种多样,比较常见的如 1. PostgreSQL的堆表,以行的形式存储,(当变成字段压缩后的长度超过数据块的四分之一时,会以TOAST的形式存储到TOAST表). 2. ...
- mysql增加中文字段_mysql怎么添加字段
在MySQL中编写sql语句时,会添加字段是非常重要的,例如:已创建表不足以满足要求时,这时就需要增加字段,已达到要求. mysql添加字段的方法: 首先以下面创建的表为例:CREATE TABLE ...
- mysql 增加列和注释_MySql给表添加列和注释
1.给表添加列 alter table supplier_seller add column company_id int null comment '供应主体id'; 默认情况下,添加的列会添加到最 ...
- Android GreenDAO 3.0 不修改版本号的情况下增加、删除表、添加字段
最近项目中使用了GreenDAO的3.0以上的版本,出现需要增加删除表的需求,刚开始用,发现官方对增加和删除的方法是每次去修改数据库版本号,版本一旦升级,那么原来数据库中的表会全部删除再重建.太麻烦, ...
- mysql如何加个字段_mysql如何添加字段 | mysql添加字段
alter table `sysinfo` add `fact_num` int(11); 添加字段并设置默认值: alter table `channel` add `needrestart` in ...
- mysql新增字段顺序_mysql 添加字段、删除字段、调整字段顺序 转
ALTER TABLE - 更改表属性 添加字段: alter table `user_movement_log` Add column GatewayId int not null default ...
- mysql视图怎么加字段_mysql视图添加字段
mysql视图里面怎么新增一个全新字段,在原来表内没首先,要清楚视图的概念: 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数 ...
- Android Studio 使用SQLite数据库来创建数据库+创建数据库表+更新表再次往表添加字段
目录 一.前言 二.SQLite数据库介绍 1.什么是SQLite数据库 2.特点 3.SQLite 操作API 4.SQLite数据类型 三.SQlite数据库的使用 1.创建类继承SQLiteOP ...
- oracle增加字段失败,oracle添加字段引起的问题
author:skate time:2010-05-27 oracle添加字段引起的问题 由于同事在添加了表的字段后,没有重新编译数据库的对象,导致和这个表相关的很多procedure和package ...
最新文章
- 95后女生坚持转数学专业,成功直博双一流!网友:这是高手……
- js实现线路流动_52期:实现redux与reactredux
- 做网页前端遇到的一些问题
- How is SAP CDS metadata retrieved from AG3 backend
- java自动装箱和拆箱_关于java自动装箱和自动拆箱
- android 验证码图片识别_图片验证码的识别技术
- 女孩和程序员相亲,吃饭消费了380,他没结账就先走,晚上收到微信愣了
- 设置开机不自动进入锁屏状态
- 暗黑破坏神3网站设计欣赏
- SpringBoot Spring Cloud项目学习汇总
- 09年高考零分作文:兔子,你就是一个牛B
- 2022全国水下机器人大赛国际线上赛来啦!“水下感知赛、通信赛”等你来战!
- matlab中饼图绘制程序,MATLAB中绘制二维饼图的函数是(? ? ) (1.5分)
- linux设备模型详解
- 经典:基因组测序数据从头拼接或组装算法的原理
- Mac M1芯片 安装vmware 和ubuntu 以及换源全过程
- Python破解12306图片验证码
- 云计算方向研究热点、 云计算有怎样的发展前景?
- Android Dev Tools官网地址:http://www.androiddevtools.cn/
- java 24位 唯一_Java 24位数字签名
热门文章
- WCDMA中的TSTD和STTD
- linux运维之网络配置
- JMeter数据库请求配置及示例
- 《Unity虚拟现实开发实战》——第1章,第3.1节虚拟现实设备集成的软件
- MySQL 之 Metadata Locking 研究
- JS错误 theForm.submit();SCRIPT3: 找不到成员。
- 【转】spring MVC入门示例(hello world demo)
- sql server 连接
- MySQL-快速入门(14)MySQL性能优化
- Nhibernate3.3.3sp1基础搭建测试