zoukankan      html  css  js  c++  java
  • MySQL Transaction--TPS计算规则

    TPS计算规则

    在MYSQL 中,TPS(Transaction Per Second)的计算方法为 (com_commit+com_rollback)/time,但com_commit和com_rollback记录的是显式事务的,因此隐式提交的事务不会被算到TPS中,如果程序未使用显示事务,即使在高并发事务下, 使用MYSQL看到的TPS也会很低。

    Demo验证,分别使用存储过程显式和隐式(自动提交)1000个事务:

    DELIMITER $$;
    CREATE PROCEDURE USP_T2() 
    BEGIN  
        DECLARE I INT; 
        SET I=0; 
        WHILE I<1000 DO 
            START TRANSACTION;  
                UPDATE TB001 SET C1=I WHERE ID=3094;
            COMMIT;  
            SET I=I+1;  
        END WHILE;  
    END;  
    $$;
    
    
    CREATE PROCEDURE USP_T3() 
    BEGIN  
        DECLARE I INT; 
        SET I=0; 
        WHILE I<1000 DO 
            UPDATE TB001 SET C1=I WHERE ID=3094;
            SET I=I+1;  
        END WHILE;  
    END;  
    $$;
    DELIMITER ;

    然后使用下面语句查看事务提交数量:

    SHOW GLOBAL STATUS LIKE 'com_commit' G 
    SHOW GLOBAL STATUS LIKE 'com_rollback' G
    SHOW GLOBAL STATUS LIKE 'Handler_commit' G 
    SHOW GLOBAL STATUS LIKE 'handler_rollback' G 

    执行结果:

    调用USP_T3
    CALL USP_T3();
    Handler_commit 的值增加2000,com_commit的值增加0
    
    调用USP_T2
    CALL USP_T2();
    Handler_commit 的值增加4000,com_commit的值增加1000
  • 相关阅读:
    Angular
    Angular
    Angular
    Angular
    Angular
    Angular
    Angular
    springsecurity 源码解读 之 RememberMeAuthenticationFilter
    springsecurity 源码解读之 AnonymousAuthenticationFilter
    springsecurity 源码解读之 SecurityContext
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10642081.html
Copyright © 2011-2022 走看看