性能优化的方面有很多,可以从硬件上面,也可以从软件上面优化.
我们今天讲的书要是从sql语句方面优化查询性能.他是从sql语法的层面来进行优化的
尽量避免使用select * 这样会查到很多不必要的数据,会进行会标查询,增加了磁盘的负担
分组的时候一般先过滤再分组,尽量避免 先分组后过滤 这样要查的数据会比较多
in中的值要尽量的少
exists中的值要尽量多
总而言之就是要小表驱动大表,减少IO次数
尽量少的使用join 阿里开发手册规定最多使用join三次 但是在实际的业务场景中,需要用到join的地方会很多,有的时候仅仅三次是远远不足以支撑业务的.所以很多时候是不会按照规定来的,再比如三大范式.规矩是死的人是活的
union和union all 用于连接两个表
尽量使用union all 它会查询出两个表所有的数据,而union会去掉两表之间重复的内容,这就要意义进行比较,增加了磁盘的负担
索引优化: 意思就是sql语句尽量使用到索引,因为索引可以加快查询效率 但同时索引的数量不能太多,因为索引也是占内存的,内存太多也会影响性能
多用limit(分页) 把查询的范围缩小,更精准的查询数据,避免不必要的开销
增量查询 少用子查询
批量操作时,可以提供提供一个可以一次性批量操作的方法,这样就不用多次调用数据库了