首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法在MySQL中看到ALTER TABLE语句的进度?

在MySQL中,可以通过检查information_schema数据库中的PROCESSLIST表来查看ALTER TABLE语句的进度。PROCESSLIST表包含了正在执行的线程的信息,包括ALTER TABLE语句的进度。

要查看ALTER TABLE语句的进度,可以使用以下SQL语句:

代码语言:sql
复制
SELECT COMMAND, TIME, STATE, INFO FROM information_schema.PROCESSLIST WHERE COMMAND='ALTER TABLE';

这个SQL语句会返回所有正在执行的ALTER TABLE语句的进度信息,包括正在执行的命令、执行时间、状态和详细信息。

需要注意的是,PROCESSLIST表中的信息只是一个快照,因此可能会有一些延迟。此外,PROCESSLIST表中的信息只能被MySQL用户访问,因此需要确保用户具有适当的权限。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Sql语句Mysql执行流程

2) 查询缓存(MySQL 8.0 版本后移除)             查询缓存主要用来缓存我们所执行 SELECT 语句以及该语句结果集。             ...连接建立后,执行查询语句时候,会先查询缓存,MySQL 会先校验这个 sql 是否执行过,以 Key-Value 形式缓存在内存,Key 是查询预计,Value 是结果集。...当然真正执行缓存查询时候还是会校验用户权限,是否有该表查询条件。             ...MySQL 查询不建议使用缓存,因为查询缓存失效实际业务场景可能会非常频繁,假如你对一个表更新的话,这个表上所有的查询缓存都会被清空。...5) 执行器             当选择了执行方案后,MySQL 就准备开始执行了,首先执行前会校验该用户有没有权限,如果没有权限,就会返回错误信息,如果有权限,就会去调用引擎接口,返回接口执行结果

4.7K10
  • SQL语句MySQL是如何执行

    mysql> select * from T where ID=10; 开门见山,当我们输入一条 SQL 语句时候,MySQL 内部究竟执行了什么?...修改完成后,只有再重新建立连接才会使用到新权限设置。 建立连接过程通常是比较复杂,所以我建议你使用要尽量减少建立连接动作,也就是尽量使用长连接。...MySQL 拿到一个查询语句,会先查询缓存,先校验这个语句是否执行过,以 key-value 形式存在内存里, Key 是查询预计,Value 是结果集。...优化器 经过了分析器分析,MySQL 知道你要干啥了,开始执行之前,还要先经过优化器处理。...执行器 当选择了执行方案后,MySQL 就准备开始执行了,首先执行前会校验该用户有没有权限,如果没有权限,就会返回错误信息,如果有权限,就会去调用引擎接口,返回接口执行结果。

    4.4K20

    一条SQL语句MySQL如何执行

    来源:JavaGuide | 作者:木木匠 本篇文章会分析一个 sql 语句 MySQL 执行流程,包括 sql 查询 MySQL 内部会怎么流转,sql 语句更新是怎么完成。...一 MySQL 基础架构分析 1.1 MySQL 基本架构概览 下图是 MySQL 一个简要架构图,从下图你可以很清晰看到用户 SQL 语句 MySQL 内部是如何执行。...连接建立后,执行查询语句时候,会先查询缓存,MySQL 会先校验这个 sql 是否执行过,以 Key-Value 形式缓存在内存,Key 是查询预计,Value 是结果集。...MySQL 查询不建议使用缓存,因为查询缓存失效实际业务场景可能会非常频繁,假如你对一个表更新的话,这个表上所有的查询缓存都会被清空。对于不经常更新数据来说,使用缓存还是可以。...: 先检查该语句是否有权限,如果没有权限,直接返回错误信息,如果有权限, MySQL8.0 版本以前,会先查询缓存,以这条 sql 语句为 key 在内存查询是否有结果,如果有直接缓存,如果没有,执行下一步

    3.5K20

    第17问:如何评估 alter table 进度

    问题 我们执行 alter table 语句后,经常面临“跑又跑不完,杀又不敢杀”窘境。 如果能评估 alter table 进度就幸福多了。...实验 MySQL官方已经给出了文档:https://dev.mysql.com/doc/refman/5.7/en/monitor-alter-table-performance-schema.html...还是按照之前实验 11 技巧,快速造一些数据: 重复执行 insert,让表中有足够数据: 我们来跑一个alter table另一个 session ,执行 SQL 查看进度: 看起来 SQL...不断获取进度: 可以看到,估算剩余时间不是完全精确,整个过程进度不停被评估。不过这种精确度对于我们也足够用了。...ID 工作量评估,MySQL 将 DDL 运行过程拆成一个一个任务包,这里提供了已经完成任务包数量和估算任务包总数量,两者比值即为当前进度 (注意:这里时间是当前阶段时间,而工作量评估是整个语句工作量

    1.1K20

    MySQL 案例:如何监控DDL

    背景 经常会有用户咨询大表 DDL 进度,预估时间等信息,其实依靠经验来做判断的话,比较容易出现误差,而且也和评估人实际评估手段有较大关系。...首先需要打开performance_schema(腾讯云 MySQL 需要留意是否开启了这个参数),然后setup_instruments表开启 alter 操作对应监控项以及p_f(performance_schema...: alter table sbtest.sbtest1 modify c varchar(128) NOT NULL DEFAULT ''; 因为开启了 p_f 参数,所以现在能在内存表里面看到具体数据了...实际上运行时间可以参考语句执行具体时间: mysql> alter table sbtest.sbtest1 modify c varchar(120) NOT NULL DEFAULT '';...,current 表本身只能看到当前阶段进度,可以通过定期查询来估算进度

    1.5K90

    一条SQL语句MySQL是如何执行

    来源:http://t.cn/E6U9Z9T ---- 概览 本篇文章会分析下一个sql语句mysql执行流程,包括sql查询mysql内部会怎么流转,sql语句更新是怎么完成。...查询缓存 连接建立后,执行查询语句时候,会先查询缓存,Mysql会先校验这个sql是否执行过,以Key-Value形式缓存在内存,Key是查询预计,Value是结果集。...执行器 当选择了执行方案后,mysql就准备开始执行了,首先执行前会校验该用户有没有权限,如果没有权限,就会返回错误信息,如果有权限,就会去调用引擎接口,返回接口执行结果。...二、语句分析 2.1 查询语句 说了以上这么多,那么究竟一条sql语句是如何执行呢?其实我们sql可以分为2,一种是查询,一种是更新(增加,更新,删除)。...: 先检查该语句是否有权限,如果没有权限,直接返回错误信息,如果有权限,mysql8.0版本以前,会先查询缓存,以这条sql语句为key在内存查询是否有结果,如果有直接缓存,如果没有,执行下一步。

    2K20

    一文搞懂select语句MySQL执行流程!

    select * from user where user_id = 1001; 当我们MySQL命令行输入上述SQL语句时,这条SQL语句到底MySQL是如何执行呢?...MySQL逻辑架构 介绍select语句MySQL执行流程之前,我们先来看看MySQL逻辑架构,因为任何SQL语句执行都离不开MySQL逻辑架构支撑。...也就是说,SQL语句MySQL执行流程与MySQL逻辑架构是密不可分。 ? 在上图中,我们简单画了下MySQL逻辑架构图,并且给出了逻辑分层和每层各部分功能。...而且MySQL 8.0,直接删除了查询缓存功能(冰河在看MySQL源码时,也证明了这一点)。 分析器对select语句做了什么? 分析器主要是对select语句进行 词法分析和语法分析 操作。...如果开启了慢查询的话,执行select语句时,会在慢查询日志输出一个rows_examined字段,这个字段表示select语句执行过程扫描了数据表多少行数据。

    4K20

    SQL语句MYSQL运行过程和各个组件介绍

    连接过程如果长时间没有操作则会在默认时间内进行断开连接(wait_timeout)。...长连接:当用户一次连接后不断开频繁使用,(长连接)但是会出现MysqL内存飙升问题,因为长连接里面的对象不会去被销毁会一直积压,只有当断开连接时候才会进行销毁,所以可以设置默认值进行断开连接...通过词法分析结果进行语法分析,来判断zheduan语句是否符合MYSQL语法 如果符合就会通过进行下一步,如果错误则会报错 you hava an erro in your SQL syntax...优化器: 优化器是当表中有多个索引时候来决定使用那个索引,或者一个语句有多表关联时候,决定各个表连接执行顺序。...(ROWS_EXAMINED字段 表示这个语句执行过程扫描了多少行,这个值就是执行器每次调用引擎接口获取数据行时候累加

    1.8K30

    MySQL大表删除工具pt-osc​

    :40个, 包含索引个数:6个, 表空间ibd文件:3G左右 看到这个信息,我询问业务方这个表里面的数据是冷数据还是热数据,还有没有线上使用,得到回复是一直使用。...导入完成之后,我们测试环境上直接使用alter table操作进行处理, 这里说说alter操作对表造成影响,MySQL5.6之前,alter这个时间段里面,表是被加了锁(写锁),加写锁时其他用户只能...值得注意一点是,进行alter table过程,可以看到show processliststate字段提示是“copy to tmp table”,也就是alter table操作会将当前表拷贝到一个临时表结构...pt-osc工具工作原理及步骤 : 1. 创建需要执行alter操作原表一个临时表,然后临时表更改表结构。 2....指定此选项可以让你看到该工具所执行语句 --user= 连接mysql用户名 --password= 连接mysql密码 --host= 连接mysql地址 P=

    2.3K10

    TiDB,有点意思了。

    ,说说TiDB这个小优点吧: 我们知道,MySQL,如果我们执行一个大表变更,alter table , 具体执行到什么阶段了,其实我们是无法知道,只有等待MySQL给我们返回Query OK,我们才知道这个操作执行完了...当然,如果你想知道alter table执行进度,可以使用pt-osc工具,你能看到下面的输出: Copying `db`....`table`: 91% 00:21 remain 从这个输出结果,我们可以判断当前正在进行alter table操作进度,同时还给出了一个剩余执行时间,这对于用户来说,也是非常友好。...然而,TiDB,如果你执行一个alter table语句客户端没有返回时候,可以通过另外一个客户端利用 admin show ddl命令,查看当前操作进度,这个命令不会阻塞,如下: admin...如果你想要一个更加详细结果,还可以通过ADMIN SHOW DDL JOBS 语句用于查看当前 DDL 作业队列所有结果(包括正在运行以及等待运行任务)以及已执行完成 DDL 作业队列最近十条结果

    92430

    应用示例荟萃 | performance_schema全方位介绍(下)

    语句文本功能,问MySQL数据库层能否查看到具体SQL文本,看看是否有哪里写错了。...也提供了类似的功能,通过阶段事件具有可预估工作量阶段事件进行记录与计算,就可以得到一个语句执行阶段信息和进度信息,下面我们分别举例介绍如何查看 4.1 查看SQL执行阶段 首先, 我们需要进行配置启用...(会话2) root@localhost : sbtest 03:37:32> alter table sbtest1 add index i_c(c); 此时,会话1查询阶段事件信息(此时DDL语句并未执行完成...alter语句添加索引执行全过程,以及每一个过程时间开销等信息,执行时间最长是stage/innodb/alter table (merge sort),其次是stage/innodb/alter...) 4.2 查看SQL执行进度 官方MySQL 版本,performance_schema下并没有很直观地查询整个语句执行进度方法,但是可以借助后续章节中介绍sys.session视图进行查看

    2.1K30

    MySQL 5.7 特性:Online DDL

    本文详细解释 MySQL DDL 原理,以及尽可能减少 DDL 对业务影响办法MySQL DDL 方法 MySQL DDL 有很多种方法。...如果使用MySQL 自带 DDL,MySQL 5.7 可以开启 DDL 监控,使用以下语句查看 DDL 执行进度: SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED...这个时候 SHOW PROCESSLIST 看到语句状态为 waiting for metadata lock。...其他 MySQL inplace 算法虽然支持 DDL 过程中间读写,但是对写入数据量有上限,不能超过 innodb_online_alter_log_max_size(默认为 128M)。...重放 row_log 操作到 new_table 索引上(not-rebuild 数据是原表上更新)。 重放 row_log DML操作到 new_table 数据行上。

    7.8K132

    MySQL】DDL和DML

    5.1 查询表 查询当前数据库下所有表名称 SHOW TABLES; 我们创建数据库没有任何表,因此我们进入mysql自带mysql数据库,执行上述语句查看 查询表结构 DESC 表名称...; 查看mysql数据库func表结构,运行语句如下: 5.2 创建表 创建表 CREATE TABLE 表名 ( 字段名1 数据类型1, 字段名2 数据类型2,...ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型; ​ -- 将stu表address字段名改为 addr,类型改为varchar(50) alter table stu change...address addr varchar(50); 删除列 ALTER TABLE 表名 DROP 列名; ​ -- 将stu表addr字段 删除 alter table stu drop...那么有没有刚好工具提供给我们进行使用呢? 有。 6.1 navicat概述 Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 理想解决方案。

    22230

    MySQL】执行计划 explain 及 一条select语句MySQL奇幻之旅

    文章目录 示例 解释 一条select语句MySQL奇幻之旅 示例 explain select * from emp; 解释 列(Column) 含义(Meaning) id The SELECT...identifier(每个select子句标识id) select_type The SELECT type(select语句类型) table The table for the output...type:此列是优化SQL语句时最需要关注列之一,此列显示了查询使用了何种类型。...语句为value IN (SELECT primary_key FROM single_table WHERE some_expr) index_subquery:子查询返回结果字段组合是一个索引(...:对数据使用一个外部索引排序 Using index condition:使用了索引下推 一条select语句MySQL奇幻之旅 注:MySQL8.0起以取消图中第九步(查询缓存)原因:把查询语句作为

    1.2K20

    重现一条简单SQL优化过程

    select部分执行计划如下图所示: 看到这个计划,就想对数据库说一句:"您辛苦了!"。...有同事就提出这个SQL大表上全表扫描2500次,大表关联字段上加上索引就可以了,看到这里,你有没有认同这个见解呢?我想应该有很多小伙伴是认同。...不错,给大表加上索引就不用全表扫描了,首先大表加索引,会锁表很长时间,这个索引客户生产环境须等到变更窗口才能加,客户等不及,其次你有考虑过这真的是最好办法吗?...mysql> alter table t_2 add key(i_id); Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0...sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table t_1 add key(w_id,w_name); Query OK,

    16110

    重现一条简单SQL优化过程

    select部分执行计划如下图所示: 看到这个计划,就想对数据库说一句:"您辛苦了!"。...有同事就提出这个SQL大表上全表扫描2500次,大表关联字段上加上索引就可以了,看到这里,你有没有认同这个见解呢?我想应该有很多小伙伴是认同。...不错,给大表加上索引就不用全表扫描了,首先大表加索引,会锁表很长时间,这个索引客户生产环境须等到变更窗口才能加,客户等不及,其次你有考虑过这真的是最好办法吗?...mysql> alter table t_2 add key(i_id); Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0...sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table t_1 add key(w_id,w_name); Query OK,

    18710
    领券