SQL性能优化技巧整理汇总
SQL数据库管理:掌握SQL查询和优化 #生活技巧# #工作学习技巧# #编程语言学习路径#
索引优化
SQL优化
数据表设计优化
索引优化
索引的数据结构是 B+Tree,而 B+Tree 的查询性能是比较高的,所以,建立索引能提升 SQL 的查询性能。
1、建立普通索引
对经常出现在 where 关键字后面的表字段建立对应的索引。
2、建立复合索引
如果 where 关键字后面常出现的有几个字段,可以建立对应的 复合索引。
要注意可以优化的一点是:将单独出现最多的字段放在前面。
例如现在我们有两个字段 a 和 b 经常会同时出现在 where 关键字后面:
select * from t where a = 1 and b = 2; * Q1 *
也有很多 SQL 会单独使用字段 a 作为查询条件:
select * from t where a = 2; * Q2 *
此时,我们可以建立复合索引 index(a,b)。因为不但 Q1 可以利用复合索引,Q2 也可以利用复合索引。
3、最左前缀匹配原则
如果我们使用的是复合索引,应该尽量遵循 最左前缀匹配原则。MySQL 会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配。
假如此时我们有一条 SQL :
select * from t where a = 1 and b = 2 and c > 3 and d = 4;
那么我们应该建立的复合索引是:index(a,b,d,c) 而不是 index(a,b,c,d)。因为字段 c 是范围查询,当 MySQL 遇到范围查询就停止索引的匹配了。
大家也注意到了,其实 a,b,d 在 SQL 的位置是可以任意调整的,优化器会找到对应的复合索引。
还要注意一点的是:最左前缀匹配原则不但是复合索引的最左 N 个字段;也可以是单列(字符串类型)索引的最左 M 个字符。
例如我们常说的 like 关键字,尽量不要使用全模糊查询,因为这样用不到索引;
所以建议是使用右模糊查询:select * from t where name like ‘李%’(查询所有姓李的同学的信息)。
4、索引下推
很多时候,我们还可以复合索引的 索引下推 来优化 SQL 。
例如此时我们有一个复合索引:index(name,age) ,然后有一条 SQL 如下:
select * from user where name like ‘张%’ and age = 10 and sex = ‘m’;
根据复合索引的最左前缀匹配原则,MySQL 匹配到复合索引 index(name,age)
网址:SQL性能优化技巧整理汇总 https://www.yuejiaxmz.com/news/view/518856
相关内容
SQL优化大全:详细总结30个超级实用的SQL优化技巧SQL Server数据库性能优化(一)之 优化SQL 语句
15个常用的sql优化技巧
Oracle数据库日常管理与维护技巧:提升SQL性能与数据安全
Hive 性能优化 9 大技巧
Hibernate SQL优化小技巧使用dynamic
sql优化的15个小技巧(必知五颗星),面试说出七八个就有了
SQL Server 菜鸟教程入门必备指南,轻松掌握数据库操作与查询技巧
Oracle查询优化改写技巧与案例2.0
WPS表单数据汇总技巧:高效整理与分析