5 SQL语句优化

编程入门 行业动态 更新时间:2024-10-27 05:30:14

5 SQL<a href=https://www.elefans.com/category/jswz/34/1770772.html style=语句优化"/>

5 SQL语句优化

1、负向查询不能使用索引
select name from user where id not in (1,3,4);
-- 应该修改为
select name from user where id in (2,5,6);
2、前导模糊查询索引会失效
select name from user where name like '%zhangsan' --无效索引
select name from user where name like 'zhangsan%' --索引有效
3、数据区分不明显的不建议创建索引

例如:性别字段不建议用来创建索引

4、字段的默认值不要为 null
5、在字段上进行计算不能命中索引
select name from user where FROM_UNIXTIME(create_time) < CURDATE();
-- 应该修改为
select name from user where create_time < FROM_UNIXTIME(CURDATE());
6、最左前缀原则
-- 如果给 user 表中的 username pwd 字段创建了复合索引那么使用以下SQL 都是可以命中索引
1.select username from user where username='zhangsan' and pwd ='axsedf1sd';
2.select username from user where pwd ='axsedf1sd' and username='zhangsan';
3.select username from user where username='zhangsan';
-- 但是,跳过username直接使用pwd,会导致索引失效
select username from user where pwd ='axsedf1sd';-- 如果明确知道只会返回一条记录的时候,使用limit可以提高效率,游标不会移动
select name from user where username='zhangsan' limit 1;
--不过通常生产情况下,这种情况不多,比如一些配置表,常量表等,不过索引是const常量类型的话,效率是最高的
7、类型转换会导致索引失效
-- 例如,varchar类型进行自动转换的时候
select name from user where telno=13033334444;
-- 应该修改为
select name from user where telno='13033334444';
未完待续,后面会进行干货补上

更多推荐

5 SQL语句优化

本文发布于:2023-11-16 16:52:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1627710.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语句   SQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!