MySQL 优化技巧

本文介绍了 12 个 MySQL 优化技巧,包括比较运算符用“=”、使用“LIMIT 1”避免全表扫描、选择合适数据类型、将大查询拆成小查询等。还提到使用 UNION ALL 代替 UNION、保持 SQL 语句一致、避免“SELECT *”等,同时强调部分子句列尽量被索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

技巧1  比较运算符能用 “=”就不用“<>”

“=”增加了索引的使用几率。

 

技巧2  明知只有一条查询结果,使用 “LIMIT 1”

“LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了。

 

技巧3  为列选择合适的数据类型

能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,磁盘和内存消耗越小越好。

 

技巧4  将大的DELETE,UPDATE or INSERT 查询变成多个小查询

为了达到更好的性能以及更好的数据控制,j将一个几十行、几百行的SQL语句变成多个小查询。

 

技巧5  使用UNION ALL 代替 UNION,如果结果集允许重复的话

因为 UNION ALL 不去重,效率高于 UNION。

 

技巧6  为获得相同结果集的多次执行,请保持SQL语句前后一致

这样做的目的是为了充分利用查询缓冲。

比如根据地域和产品id查询产品价格,第一次使用了:

那么第二次同样的查询,请保持以上语句的一致性,比如不要将where语句里面的id和region位置调换顺序。

 

技巧7  尽量避免使用 “SELECT *”

如果不查询表中所有的列,尽量避免使用 SELECT *,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。

 

技巧8  WHERE 子句里面的列尽量被索引

只是“尽量”哦,并不是说所有的列。因地制宜,根据实际情况进行调整,因为有时索引太多也会降低性能。

 

技巧9  JOIN 子句里面的列尽量被索引

同样只是“尽量”哦,并不是说所有的列。

 

技巧10  ORDER BY 的列尽量被索引

ORDER BY的列如果被索引,性能也会更好。

 

技巧11  使用 LIMIT 实现分页逻辑

不仅提高了性能,同时减少了不必要的数据库和应用间的网络传输。

 

技巧12  使用 EXPLAIN 关键字去查看执行计划

EXPLAIN 可以检查索引使用情况以及扫描的行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MichaelYZ111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值