一、核心优化方向
1、索引优化
覆盖索引:确保常用查询字段(如`keyword`, `timestamp`, `status`)建立联合索引,避免回表查询。
前缀索引:对长文本字段(如`content`)创建前缀索引(例如`INDEX(content(255))`),减少存储空间。
删除冗余索引:通过`SHOW INDEX FROM table_name`检查并移除重复或低效索引。
3、查询优化
EXPLAIN分析:定期执行`EXPLAIN SELECT ...`定位全表扫描或临时表问题。
延迟JOIN:先过滤主表数据再关联子表,例如:
sql
SELECT a.*, b.*
FROM main_table a
INNER JOIN sub_table b ON a.id = b.main_id
WHERE a.keyword = 'target';
五、示例优化方案
假设系统需每秒处理1万次关键词查询,可采用以下组合:
架构:主库(写) + 3个从库(读) + Redis缓存层
索引:`CREATE INDEX idx_keyword_time ON keywords(keyword, timestamp)`
查询优化:
sql
SELECT * FROM keywords
WHERE keyword IN ('key1','key2')
AND timestamp NOW() INTERVAL 1 HOUR;