如何修改mysql数据库表结构

 我来答
爱可生云数据库
2020-12-17 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

Online DDL 工具:pt-osc

对于 MySQL Online DDL 目前主流的有三种工具:

  • 原生 Online DDL;

  • pt-osc(online-schema-change),

  • gh-ost

  • 本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。

    一、原理及限制

    1.1 原理

    1. 创建一个与原表结构相同的空表,表名是 _new 后缀;

    2. 修改步骤 1 创建的空表的表结构;

    3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;

    4. 将原表数据以数据块(chunk)的形式 copy 到新表;

    5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;

    6. 删除触发器。

最柔人天忆16
2017-12-07 · TA获得超过1935个赞
知道小有建树答主
回答量:2.1万
采纳率:33%
帮助的人:1379万
展开全部
下面是具体的过程:
1、备份数据
select * from ih_order into outfile '/bak/order.txt';
mysql> select * from ih_order into outfile 'D:/bak/order.txt';
Query OK, 10001000 rows affected (1 min 30.18 sec)

2、复制原表物理结构
create table ih_order_bak like ih_order;

3、执行表结构修改,这里是增加索引
alter table `ih_order_bak` add index ( `consulate` );

4、把原表数据导入新表
mysql> insert into ih_order_bak select * from ih_order;
Query OK, 10001000 rows affected (6 min 10.30 sec)
Records: 10001000 Duplicates: 0 Warnings: 0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式