索引优化和查询优化¶
都有哪些维度可以进行数据库调优?
简言之:
-
索引失效、没有充分利用到索引——索引建立
-
关联查询太多JOIN(设计缺陷或不得已的需求)——SQL优化
-
服务器调优及各个参数设置(缓冲、线程数等)——调整my.cnf。
-
数据过多——分库分表
关于数据库调优的知识点非常分散。不同的DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。
虽然SQL查询优化的技术有很多,但是大方向上完全可以分成物理查询优化和逻辑查询优化两大块。
-
物理查询优化是通过索引和表连接方式等技术来进行优化,这里重点需要掌握索引的使用。
-
逻辑查询优化就是通过SQL等价变换提升查询效率,直白一点就是说,换一种查询写法执行效率可能更高。
索引失效¶
索引文件具有 B-Tree 的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。