MySQL 是一款常用的關(guān)系型數(shù)據(jù)庫,經(jīng)常需要對其進(jìn)行性能測試,其中一個指標(biāo)就是 TPS(Transactions Per Second,即每秒事務(wù)數(shù))。本文將介紹如何通過查詢 MySQL 的 TPS。
SHOW GLOBAL STATUS LIKE 'Com_commit'; SHOW GLOBAL STATUS LIKE 'Com_rollback';
以上 SQL 語句可以查詢出 MySQL 執(zhí)行了多少次 commit 和 rollback 操作,兩個操作總次數(shù)之和就是總的事務(wù)數(shù)。使用以下 SQL 語句可以計(jì)算出每秒鐘的事務(wù)數(shù):
SELECT (COMMIT + ROLLBACK) / @@GLOBAL.INNODB_BUFFER_POOL_PAGES_DATA * @@GLOBAL.INNODB_BUFFER_POOL_PAGES_TOTAL / 3600 * 24 AS TPS FROM ( SELECT VARIABLE_VALUE AS COMMIT FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'COMMITTED_TRANSACTIONS', SELECT VARIABLE_VALUE AS ROLLBACK FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'ROLLED_BACK_TRANSACTIONS' ) t;
需要注意的是,該查詢語句僅適用于 InnoDB 存儲引擎。
通過查詢 MySQL 的 TPS,可以評估出系統(tǒng)在繁忙時的處理能力,有助于優(yōu)化數(shù)據(jù)庫性能。