数据库的SQL优化

简介: 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 (因为在条件查询条件添加索引,会直接被检索到列,会非常的快速)   2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 (最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库.

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

(因为在条件查询条件添加索引,会直接被检索到列,会非常的快速)

 

2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库.

例如:

 1 select id from t where num is null 

可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:

 1 select id from t where num = 0 

 

3.不要使用

 1 sleect * from name 

(这个绝对的全部的查询,千万不要剩力气去用)

 

4.应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。

 1 select id from name where id>5 

 

5.应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描,如:

 1 select id from t where num=10 or Name = 'admin'

可以这样查询:

 1 select id from t where num = 10 2 union all 3 select id from t where Name = 'admin 

 

6:in或者not in 也慎用 如:

 1 select id from student where id in(select id from aa) 

很多时候用 exists 代替 in 是一个好的选择:

如 : 1 select id from student where id exists(select id from aa) 

 

7:like模糊查询也会导致全盘扫描 如:

 1 select id from student where name like '%kk%' 

 

8:应避免对where语句的表达式操作 如:

 1 select id from student where id=8/2 

 

9:Update 语句,如果只更改1、2个字段,不要Update全部字段,否则频繁调用会引起明显的性能消耗,同时带来大量日志。

 

10:对于多张大数据量的表JOIN,要先分页再JOIN。

 

11:select count(*) from table;这样不带任何条件的count会引起全表扫描,并且没有任何业务意义,是一定要杜绝的。

 

12:索引并不是越多越好,应正确使用索引,经常进行修改的列不适合做索引。

 

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

 

14:尽量避免大事务操作,提高系统并发能力。

 

总结:

对于sql的优化最怕的就是避免全盘扫描,重要的事说三遍,对于sql的优化最怕的就是避免全盘扫描,对于sql的优化最怕的就是避免全盘扫描,对于sql的优化最怕的就是避免全盘扫描,杜绝***********;

欢迎大家一起说出自己的想法。
目录
相关文章
|
17天前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
46 8
|
4天前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
24 10
|
3天前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
7天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
17 7
|
3天前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
7 1
|
7天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
12 5
|
3天前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
14 1
|
6天前
|
XML Java 数据库连接
如何使用HikariCP连接池来优化数据库连接管理
在Java应用中,高效管理数据库连接是提升性能的关键。本文介绍了如何使用HikariCP连接池来优化数据库连接管理。通过引入依赖、配置参数和获取连接,你可以显著提高系统的响应速度和吞吐量。 示例代码展示了从配置到使用的完整流程,帮助你轻松上手。
23 3
|
8天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
16 4
|
7天前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
12 2