美文网首页
Mysql 性能模式监控 InnoDB 表的 ALTER TAB

Mysql 性能模式监控 InnoDB 表的 ALTER TAB

作者: 一介书生独醉江湖 | 来源:发表于2023-02-16 22:16 被阅读0次
    # 启用stage/innodb/alter%仪器
    
    SET SQL_SAFE_UPDATES = 0;
    UPDATE performance_schema.setup_instruments
           SET ENABLED = 'YES'
           WHERE NAME LIKE 'stage/innodb/alter%';
    
    # 启用舞台事件消费者表,其中包括 events_stages_current、 events_stages_history和 events_stages_history_long。
    
    UPDATE performance_schema.setup_consumers
           SET ENABLED = 'YES'
           WHERE NAME LIKE '%stages%';
    
    # ALTER TABLE通过查询 Performance Schema events_stages_current表来 检查操作的进度。
    # 显示的阶段事件根据 ALTER TABLE当前正在进行的阶段而有所不同。
    # 该WORK_COMPLETED列显示已完成的工作。该 WORK_ESTIMATED列提供了对剩余工作的估计。
    
    SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
           FROM performance_schema.events_stages_current;
    
    # 如果操作已完成, 该events_stages_current表将返回一个空集。
    # ALTER TABLE在这种情况下,您可以检查events_stages_history 表以查看已完成操作的事件数据。
    
    SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
           FROM performance_schema.events_stages_history;
    
    # 工作量评估
    
    SELECT stmt.SQL_TEXT AS sql_text, concat(WORK_COMPLETED, '/', WORK_ESTIMATED) AS progress
        , (stage.TIMER_END - stmt.TIMER_START) / 1e12 AS current_seconds
        , (stage.TIMER_END - stmt.TIMER_START) / 1e12 * (WORK_ESTIMATED - WORK_COMPLETED) / WORK_COMPLETED AS remaining_seconds
    FROM performance_schema.events_stages_current stage, performance_schema.events_statements_current stmt
    WHERE stage.THREAD_ID = stmt.THREAD_ID
        AND stage.NESTING_EVENT_ID = stmt.EVENT_ID;
    
    参考:
    # https://www.modb.pro/db/430549
    # https://opensource.actionsky.com/20200724-mysql/
    
    遇到问题:
    # 由于我的生产数据库是5.5版本的,所以没有开启performance_schema;
    
    # MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。
    # 并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。
    
    # MySQL 5.5默认是关闭的,需要手动开启;在配置文件里添加:
    # [mysqld]
    # performance_schema=ON
    
    # ** 启用Performance Schema功能,需要重启数据库实例,建议您在业务低峰期操作,并确保应用程序具有重连机制。
    
    # 查看是否开启:
    show variables like 'performance_schema';
    
    测试库:
    select version();
    # '5.7.25-0ubuntu0.18.04.2'
    show variables like 'performance_schema';
    # 'performance_schema', 'ON'
    
    select version();
    # '5.5.62-0ubuntu0.14.04.1-log'
    show variables like 'performance_schema';
    # 'performance_schema', 'OFF'
    
    
    

    相关文章

      网友评论

          本文标题:Mysql 性能模式监控 InnoDB 表的 ALTER TAB

          本文链接:https://www.haomeiwen.com/subject/rmxmkdtx.html