1、QPS(Queries Per Second 每秒查詢數)
定義:常用于表示每秒的請求次數,衡量接口請求、數據庫查詢等動作的吞吐量(單位時間內處理的數據量)
計算:總請求數/請求時間,如:10秒內請求了200次接口,QPS =?200 / 10
會受服務器性能、網速、代碼效率(算法復雜度、SQL查詢語句)影響
2、TPS(Transactions Per Second 每秒事務數)
定義:表示系統每秒處理業務的動作,常用于支付系統、訂單系統等需要業務完整性的場景
計算:總事務數/總耗時數,如:清空購物車時,同時支付了所有訂單(100個訂單),系統5秒內完成所有支付業務,TPS = 100 / 5
會受數據庫事務鎖(mysql死鎖)、分布式事務協調、磁盤I/O性能(日志寫入速度)影響
總結:
1TPS可能包含多個QPS(創建訂單 - - 扣除庫存),即 TPS >= QPS
提升QPS/TPS:
1.提高 QPS
-
使用緩存(Redis、CDN)減少數據庫查詢。
-
優化代碼(減少循環、避免阻塞 I/O)。
-
負載均衡(Nginx 分發請求到多臺服務器)。
-
異步處理(如 MQ 削峰填谷)。
2.提高 TPS
-
數據庫優化(索引、分庫分表)。
-
減少事務鎖競爭(樂觀鎖、減小事務粒度)。
-
使用更高效的事務模型(如 MySQL 的 MVCC)。
-
分布式事務優化(如 TCC 模式替代 2PC)。