您的位置:首页 > 汽车 > 时评 > 【MySQL】SQL语句的优化

【MySQL】SQL语句的优化

2024/9/20 22:35:44 来源:https://blog.csdn.net/wjjjjxxxx/article/details/142132578  浏览:    关键词:【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性能。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com