table_name AS `表名`,
table_type AS `类型`,
engine AS `引擎`,
VERSION AS `版本`,
TABLE_COLLATION AS `字符集`
FROM
information_schema.tables
WHERE
table_schema = 'test'
ORDER BY
table_name DESC
+------------------+------------+--------+------+-------------------+
| 表名 | 类型 | 引擎 | 版本 | 字符集 |
+------------------+------------+--------+------+-------------------+
| test_sub_student | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| test_sub2 | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| test_sub | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| test_rollup_1 | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| test_main_class | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| test_main2 | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| test_main | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| testuser | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| td_testsalary | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| sale_report | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
| log_table | BASE TABLE | InnoDB | 10 | latin1_swedish_ci |
+------------------+------------+--------+------+-------------------+
11 rows in set (0.00 sec)
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. 删除触发器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)