返回顶部
首页 > 资讯 > 数据库 >sql语句优化的十二条建议
  • 426
分享到

sql语句优化的十二条建议

2024-04-02 19:04:59 426人浏览 泡泡鱼
摘要

1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is n

1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0

2.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20

 

3下面的查询也将导致全表扫描:
select id from t where name like '%abc%'
若要提高效率,可以考虑全文检索。

 

4.in 和 not in 也要慎用,否则会导致全表扫描,如:
select id from t where num in(1,2,3)
对于连续的数值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3

 

 

5.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num/2=100
应改为:
select id from t where num=100*2

 

 

6.很多时候用 exists 代替 in 是一个好的选择:
select num from a where num in(select num from b)
7.用下面的语句替换:
select num from a where exists(select 1 from b where num=a.num)

 

 

 

8.索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。

 

 


9.尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。

 

10.任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

 

11.避免频繁创建和删除临时表,以减少系统表资源的消耗。

12.临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表中的某个数据集时。但是,对于一次性事件,最好使用导出表。

 


您可能感兴趣的文档:

--结束END--

本文标题: sql语句优化的十二条建议

本文链接: https://lsjlt.com/news/44416.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • sql语句优化的十二条建议
    1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is n...
    99+
    2024-04-02
  • 52条SQL语句教你性能优化
    1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 n...
    99+
    2024-04-02
  • SQL语句优化
    一、SQL语句优化 (1)查看表结构 MariaDB [oldboy]> desc test1; +-------+----------+------+-----+---------+-------+...
    99+
    2024-04-02
  • 50个SQL语句(MySQL版) 问题二十二
    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname)...
    99+
    2016-05-25
    50个SQL语句(MySQL版) 问题二十二
  • 50个SQL语句(MySQL版) 问题十二
    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname)...
    99+
    2019-10-23
    50个SQL语句(MySQL版) 问题十二
  • 50个SQL语句(MySQL版) 问题二十
    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname)...
    99+
    2019-03-09
    50个SQL语句(MySQL版) 问题二十
  • 优化查询语句的建议具体是什么
    本篇文章为大家展示了优化查询语句的建议具体是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我要做两件事情,第一,指出为什么这个清单很糟糕,第二,列出我的清单,希...
    99+
    2024-04-02
  • sql语句的优化方式
    这篇文章主要讲解了“sql语句的优化方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“sql语句的优化方式”吧! 1.合理使用索引 索引是中重要的数据结...
    99+
    2024-04-02
  • MySQL优化之三:SQL语句优化
    一 SQL语句优化的一般步骤:1 通过show status命令了解各种SQL语句的执行频率mysql> show status;      ...
    99+
    2024-04-02
  • 50个SQL语句(MySQL版) 问题二十一
    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname)...
    99+
    2018-09-13
    50个SQL语句(MySQL版) 问题二十一
  • 50个SQL语句(MySQL版) 问题二十三
    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname)...
    99+
    2019-07-21
    50个SQL语句(MySQL版) 问题二十三
  • 50个SQL语句(MySQL版) 问题二十四
    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname)...
    99+
    2018-03-26
    50个SQL语句(MySQL版) 问题二十四
  • 50个SQL语句(MySQL版) 问题二十五
    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname)...
    99+
    2021-11-11
    50个SQL语句(MySQL版) 问题二十五
  • sql查询语句优化
    sql查询语句优化 1、对查询进行优化,应尽量避免全表扫描 a、 where 及 order by 涉及的列上建立索引 b、 尽量避免在 where 子句中对字段进行 null 值判断,可以将null值设置默认值0等,如...
    99+
    2016-05-19
    sql查询语句优化 数据库入门 数据库基础教程 数据库 mysql
  • SQL语句优化技巧
    1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 orde...
    99+
    2024-04-02
  • SQL语句怎么优化
    这篇文章运用简单易懂的例子给大家介绍SQL语句怎么优化,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、常见的SQL实践(1)负向条件查询不能使用索引select * fro...
    99+
    2024-04-02
  • ORACLE之sql语句优化
    今天是四月份最后一天的上班时间,明天就开始假期了!~三天!希望自己能利用这几天好好补一补专业知识,今天晚上开始学习SQL优化课程!常规优化1:尽量避免使用* 列出所有列,因为系统对*解析成列明会消耗一定时间...
    99+
    2024-04-02
  • 如何优化SQL语句
    这篇文章主要介绍“如何优化SQL语句”,在日常操作中,相信很多人在如何优化SQL语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何优化SQL语句”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • SQL语句怎样优化
    这篇文章主要介绍了SQL语句怎样优化,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(1) 选择最有效率的表名顺序 (只在基于规则的...
    99+
    2024-04-02
  • sql的优化建议有哪些呢
    本篇文章给大家分享的是有关sql的优化建议有哪些呢,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、硬件层相关优化  1.1、CPU相关  在...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作