1、性能测试中你有亲自去做过系统瓶颈调优吗?
2、mysql调优中的慢查询是什么原因引起的?
1)SQL没加索引
2)SQL加了索引但是没生效
1.隐式的类型转换,索引失效。
字段为字串类型,是B+树的普通索引,如果查询条件传了一个数字过去,会导致索引失效。
2. like通配符可能导致索引失效
like查询以%
开头,索引失效
3.查询条件不满足联合索引的最左匹配原则
MySQl建立联合索引时,会遵循最左前缀匹配的原则,即最左优先。如果你建立一个(a,b,c)
的联合索引,相当于建立了(a)、(a,b)、(a,b,c)
三个索引。
有一个联合索引idx_userid_name
,我们执行这个SQL,查询条件是b,索引是无效:
因为查询条件列b
不是联合索引idx_userid_name
中的第一个列,索引不生效
4.左右连接,关联的字段编码格式不一样
5. join 或者子查询过多
一般来说,不建议使用子查询,可以把子查询改成join
来优化。而数据库有个规范约定就是:尽量不要有超过3个以上的表连接。