sql优化的四个方面

一、sql优化的必要性

        在我们日常工作中,参与开发上线和维护的项目在经过一段时间的运行,数据体量回答道一定的程度,业务数量会增多,sql的执行效率会逐渐降低,对程序的影响会逐渐增大,所以我们需要对sql进行优化,提高程序的性能。

        当然,在我们的开发过程中也需要注意sql上面的一些问题,避免sql执行缓慢,降低性能瓶颈。

二、sql优化的四个方面

        在日常的工作中,以MySql为例,我总结了以下数据库优化的四个方面:

        1、sql语法优化

         在日常开发中,我们首先就要在sql的编写过程中注意到效率这个问题。

        这里大概分为两点:

        第一点是业务方向,理清表和表之间的关系,简化sql语句,保证sql平稳运行。那么怎么简化呢,在数据量没有很大的情况下,我们一般都会使用多表查询,在多表查询的时候最好不要关联超过5个以上的表,连接的表越多,编译的时间和连接开销就会越大,性能就更不好控制;把复杂的sql拆分,使他分成几个小部分逐步执行,优先执行能够筛选掉大批数据的sql,这样结果会更加的按照我们预测的方向去走;如果真的需要关联很多个表才能拿到数据,可能我们的表结构有问题,这个时候我们可以酌情优化表结构。

        第二点是索引使用,主要是注意我们的索引在执行sql语句的过程中不会失效,这种例子比较多,比如说我们在使用like查询时,使用%a(a为查询内容),在这种情况下就会造成索引失效,或者使用复合索引时,索引字段的顺序和查询顺序不一致等等。另外就是MySql查询只是用一个索引,所以我们在where子句中使用了索引的话,在oerder by中的列是不会使用索引的。

        2、sql索引优化

        主要是对慢sql、需要添加索引的查询列添加合适的索引,在多条件的查询下,单个索引的查询速度不足以满足我们的需要的时候,可以添加复合索引,在使用时,要保证复合索引的字段顺序和sql中查询的索引顺序一致。补充一点就是,我们在建立索引的时候,在满足字段使用的前提下,尽量减少字段的长度,减少B+树的高度,提升查询效率。

        3、数据库优化

        如果在索引都无法满足的情况下或者我们需要暂时性的提升MySql数据库的性能以应对可以预见的大批量访问时,我们可以提高数据库的配置,以提高sql的执行效率。

        4、服务器优化

        在这种情况下,数据已经达到一个量级了,建议根据业务需求对数据库进行分库分表设计。

 

         -- 入门菜鸟一枚,平时的一点工作经验总结,如果有看到同学感觉哪里不对,还请指正,共同学习进步!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值