【MySQL】SQL语句的优化

前言:

        在开发中,我们测试刚编写的接口时感觉执行速度不慢,便没有着重管理SQL语句是否合理。之后随着数据量的增加,接口响应速度显著慢了许多,此时,我们就要考虑SQL的优化了。

SQL优化是为更高效的对数据库进行查询和操作。所以下面的操作,都是围绕这个中心来展开的。

目录

 一、查询语句的优化

二、索引的优化 

三、执行计划(explain)的分析 

四、表设计

五、参数化查询


 一、查询语句的优化

1、使用合适的查询语句

        根据情况选择INNER JOIN 和 OUTER JOIN(左右连接、全外连接),减少不必要的数据处理。(INNER JOIN 和 OUTER JOIN 的区别,详见:此文章

2、限制返回行的数量:

        可以在SQL中使用 limit ,如:limit 10 ,每次查询只返回10条数据。

3、避免SELECT *

        在SQL查询语句中,我们只选择自己所需要的列,减少数据传输数量。

        补充:虽然在MySQL8.0对select * 提供了更友好的支持,但我们还是尽量去按照自己需要什么列就查询什么列,一方面节省资源,提升效率;另一方面也方便后期的维护,不然一看这SQL中是个 * 号,不能直观获取到查询的字段信息。 

二、索引的优化 

1、创建合适的索引:

        根据实际业务,在查询条件(where、join、order by)中创建合适的索引。

2、避免过多的索引:

        索引是把双刃剑,适当的添加索引能极大提高接口性能,但过多的索引会导致弄巧成拙,反而降低我们的写入性能。 

三、执行计划(explain)的分析 

     通过explain查询SQL执行计划,了解我们索引的使用情况,可以帮我我们找到性能瓶颈。

详情:【MySQL】EXPLAIN(执行计划)关键字是什么?-CSDN博客

四、表设计

1、设计数据库是,要求符合三大范式,尽量减少冗余字段(可以将冗余字段存入一张冗余字段表中)。

2、分区:

        对于非常大的表,可以采用分区技术,将表划分为多个部分,提高查询效率。

五、参数化查询

         避免SQL注入攻击,并且允许数据库重用explain执行计划,从而提高SQL性能。

 六、配置数据库缓存的合理性 

详情见:【MySQL】了解并操作MySQL的缓存配置与信息-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值