TPS 和 QPS 的区别
在系统性能测试、压力测试或高并发优化中,TPS(Transactions Per Second) 和 QPS(Queries Per Second) 是两个常用的性能指标。它们的核心区别如下:
指标 | 全称 | 含义 | 适用场景 |
---|---|---|---|
TPS | Transactions Per Second | 每秒处理的事务数量 | 事务型系统(如支付、银行系统) |
QPS | Queries Per Second | 每秒处理的查询请求数 | 搜索、接口调用、数据库查询 |
📌 1. 什么是 TPS(Transactions Per Second)?
TPS(每秒事务处理量) 指的是 系统每秒能处理的完整事务(Transaction)数量。
🔹 特点
- 事务(Transaction)通常包含多个请求(如读写数据库、调用多个接口)。
- TPS 关注的是整个事务流程,而不仅仅是单个请求。
- 适用于 支付系统、银行转账、订单处理 等事务型系统。
🔹 示例
银行转账事务
- A 发起转账请求。
- 系统检查 A 的账户余额。
- 系统扣减 A 的金额,增加 B 的金额。
- 生成交易记录,并通知 A 和 B。
如果系统 1 秒内可以完成 500 次完整的转账操作,那么 TPS = 500。
📌 2. 什么是 QPS(Queries Per Second)?
QPS(每秒查询率) 指的是 服务器每秒处理的查询(Query)次数。
🔹 特点
- QPS 代表的是独立的查询请求,而不是完整的事务。
- 适用于 搜索引擎、数据库查询、Web API 请求。
- 通常 TPS 包含多个 QPS,一个事务可能涉及多个查询请求。
🔹 示例
搜索引擎
- 用户在搜索框输入
"TPS vs QPS"
,搜索引擎会执行:- 查询 用户历史记录。
- 查询 搜索关键词的相关文档。
- 查询 广告推荐。
- 查询 个性化推荐。
如果搜索引擎每秒可以处理 10000 次查询请求,那么 QPS = 10000。
📌 3. TPS 和 QPS 的关系
一般情况下:
QPS ≥ TPS
因为:
- 一个 事务(Transaction) 通常包含 多个查询(Query)。
- QPS 是所有请求的总和,而 TPS 关注的是业务层面的完整事务。
🔹 计算公式
假设:
- 每个事务(Transaction)包含 5 个查询(Query)
- TPS = 100
- 那么 QPS = 100 × 5 = 500
所以:
QPS = TPS × 每个事务的查询数
TPS = QPS ÷ 每个事务的查询数
📌 4. 适用场景
场景 | 适用指标 | 解释 |
---|---|---|
支付系统 | TPS | 关注完整支付流程的吞吐量 |
数据库查询 | QPS | 关注数据库每秒查询能力 |
API 网关 | QPS | 关注 HTTP 请求量 |
电商订单系统 | TPS | 关注用户下单成功率 |
搜索引擎 | QPS | 关注用户查询处理能力 |
📌 5. 总结
指标 | 关注点 | 示例 |
---|---|---|
TPS(事务处理量) | 每秒完成的事务数量 | 100 个用户下单 |
QPS(查询请求数) | 每秒处理的查询请求数 | 10000 次数据库查询 |
✅ 记住
- TPS = 整个业务流程
- QPS = 具体查询请求
- QPS ≥ TPS,通常一个事务包含多个查询。
💡 如果你要优化数据库或 API,可以关注 QPS;如果要优化业务流程吞吐量,可以关注 TPS。 🚀