一、前言
就最近一、二个多月所做的工作想仔细记录下,背景是这样:随着业务的迭代,每天都会有大量的告警,如慢sql、接口响应慢、mysql查询连接超时等。每天早上来公司第一件事是梳理检查下是否影响到主流业务功能。其实这些问题总的来说就是:“慢sql治理/千万级数据量优化”。
仔细回想下,这一、二个月的工作挺“脏”的。这个“脏”就是表达这个工作做起来比较麻烦、考虑的细、鱼与熊掌不可兼得,很难有完美的解决方案。
结合这段时间做的工作,针对上述的问题,主要可以从下面几点进行思考【个人见解,在大神们眼里可能是不全面,勿喷】。
按照上面总的归纳,其实在一开始设计表时,就需要考虑业务对应的表具有可扩展性,设计出合理的表,以及表进行查询、DML操作的sql也需要设计完美。另外,索引也需要设计合理。
二、sql语句优化
书写第一个sql语句是关键,拥有可扩展性的sql可以方便后续其他开发人员复用、维护。在考虑表后续可能会数据量暴增时,sql语句尽量减少联合表查询。前期书