10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 36.3 mb
PDF (A4)- 36.4 mb
手册(TGZ)- 237.6 kb
手册(Zip)- 349.3 kb
信息(Gzip)- 3.4 mb
信息(邮政编码)- 3.4 mb
本手册节选

MySQL 5.7参考手册/.../ 使用性能模式监视InnoDB表的ALTER TABLE进程

14.17.1使用性能模式监控InnoDB表的ALTER TABLE进度

你可以监控ALTER TABLE进步的InnoDB表的使用性能模式

有七个阶段的事件,代表不同的阶段ALTER TABLE.每个阶段事件报告的运行总数为WORK_COMPLETED而且WORK_ESTIMATED对于整体而言ALTER TABLE通过不同的阶段进行操作。WORK_ESTIMATED计算公式考虑了所有的功ALTER TABLE执行,并可能在期间修改ALTER TABLE处理。WORK_COMPLETED而且WORK_ESTIMATED值是所执行的所有工作的抽象表示ALTER TABLE

按发生顺序,ALTER TABLE舞台活动包括:

  • (1)修改表::该阶段活跃时ALTER TABLE处于读取主键阶段。它开始于WORK_COMPLETED = 0而且WORK_ESTIMATED设置为主键中的估计页面数。当这个阶段完成时,WORK_ESTIMATED更新为主键中的实际页数。

  • 对表进行归并排序对象添加的每个索引都会重复此阶段ALTER TABLE操作。

  • (2)插入innodb表对象添加的每个索引都会重复此阶段ALTER TABLE操作。

  • 修改innodb表的索引:该阶段包括应用生成的DML日志ALTER TABLE是运行。

  • 刷新/innodb/alter表:在这个阶段开始之前,WORK_ESTIMATED根据齐平列表的长度,使用更准确的估算值进行更新。

  • 修改表(log apply table):此阶段包括应用并发生成的DML日志ALTER TABLE是运行。这个阶段的持续时间取决于表更改的程度。如果表上没有运行并发DML,则此阶段是即时的。

  • 运行/innodb/alter表:包括清除阶段之后出现的任何剩余工作,例如重新应用在表上执行的DMLALTER TABLE是运行。

请注意

InnoDBALTER TABLE阶段事件目前不考虑空间索引的添加。

使用性能模式的ALTER TABLE监视示例

下面的示例演示如何启用阶段/ innodb / alter table %准备要监视的事件工具和相关消费者表ALTER TABLE的进步。有关性能模式阶段事件工具和相关使用者的信息,请参见第25.12.5节“性能方案阶段事件表”

  1. 启用阶段/ innodb /改变%仪器:

    mysql>更新performance_schema。setup_instruments SET ENABLED = 'YES' WHERE NAME LIKE 'stage/innodb/alter%';查询OK, 7 rows affected (0.00 sec) rows matched: 7 Changed: 7 Warnings: 0
  2. 启用阶段事件使用者表,其中包括events_stages_currentevents_stages_history,events_stages_history_long

    mysql>更新performance_schema。setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%stages%';查询OK, 3 rows affected (0.00 sec) rows matched: 3 Changed: 3 Warnings: 0
  3. 运行一个ALTER TABLE操作。在这个例子中,amiddle_name列被添加到雇员示例数据库的雇员表中。

    修改表员工表。(14)列名称:查询OK, 0 rows affected (9.27 sec) Records: 0 duplicate: 0 warning: 0
  4. 检查进度ALTER TABLE操作events_stages_current表格所显示的舞台事件因其不同而不同ALTER TABLE目前正在进行中。的WORK_COMPLETED列显示已完成的工作。的WORK_ESTIMATED列提供对剩余工作的估计。

    SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_current;+------------------------------------------------------+----------------+----------------+ | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED  | +------------------------------------------------------+----------------+----------------+ | 阶段/ innodb / alter table(读PK和内部类)| 280 | 1245  | +------------------------------------------------------+----------------+----------------+ 1行集(0.01秒)

    events_stages_current表返回一个空集ALTER TABLE操作完成。在这种情况下,您可以检查events_stages_history表以查看已完成操作的事件数据。例如:

    SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_history;+------------------------------------------------------+----------------+----------------+ | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED  | +------------------------------------------------------+----------------+----------------+ | 阶段/ innodb / alter table(读PK和内部类)| 886 | 1213 | |阶段/ innodb / alter table(冲洗)| 1213 | 1213 | |阶段/ innodb / alter table(日志应用表)| 1597 | 1597 | |阶段/ innodb / alter table(结束)| 1597 | 1597 | | / innodb / alter table(日志应用阶段表)| 1981 | 1981  | +------------------------------------------------------+----------------+----------------+ 5行集(0.00秒)

    如上所示,WORK_ESTIMATED值在ALTER TABLE处理。初期完成后预计工作量为1213。当ALTER TABLE处理完成后,WORK_ESTIMATED被设置为实际值,即1981年。