数据库维护月课:索引、碎片与慢查询
网站越跑越慢,多半是数据库欠了维护债。每月一小时的例行功课。
数据库的问题都是慢性的,月度一小时例行维护,胜过年度大抢救。
第一课:慢查询审计
开启慢查询日志,阈值一秒。每月拉出最慢的十条,逐条看执行计划:缺索引的补索引,写法差的改写法,历史包袱重的归档。
第二课:索引体检
清理冗余与无效索引:重复索引合并,从未使用的索引删除。索引不是越多越好,每个索引都在拖慢写入。
第三课:空间治理
大表分区与归档:日志表、记录表按月滚动,历史数据转冷存储。空间膨胀不仅费磁盘,更拖累查询计划。
第四课:健康基线
记录连接数峰值、缓存命中率、查询响应分位数。基线的价值在于对比:偏离基线的月份,必有原因。
工具化建议
把四课做成脚本,月度一跑输出报告,人工只做判断。维护的敌人不是难度,是遗忘。