MySQL 性能优化:索引优化 + 读写分离 + Redis 缓存,TPS 提升 175% 实战解析
📌 1. 背景与问题分析
在高并发场景下,数据库查询性能往往成为系统的瓶颈。本文以实际优化案例为例,详细解析 索引优化 + 读写分离 + Redis 缓存 的三级优化策略,最终将 TPS(每秒事务数)从 800 提升至 2200。
- 现状问题
数据库查询慢:部分 SQL 未走索引,查询效率低下。
主库压力大:所有查询都走主库,导致写操作受影响。
重复查询过多:高并发请求下,相同 SQL 频繁执行,影响系统吞吐量。
📌 2. 解决方案
采用 索引优化 + 读写分离 + Redis 缓存 的三级优化策略,逐步降低数据库压力,提高查询效率。
- ✅ 第一步:索引优化
(1)索引优化原则
WHERE、ORDER BY、GROUP BY、JOIN 相关字段 应创建索引。
避免回表,使用覆盖索引优化查询。
复合索引遵循最左匹配原则,保证查询能利用索引。
(2)SQL 查询优化前分析
EXPLAIN ANALYZE
SELECT * FROM orders WHERE user_id = 1001 AND create_time > '2024-01-01';
问题:
user_id 没有索引,导致 全表扫描(type=ALL),查询慢。
create_time 虽然是筛选条件,但没有索引。
(3)优化方案