sql优化

简介: sql优化

1、设计表的时候,所有表和字段都添加相应的注释。

2、SQL书写格式,关键字大小保持一致,使用缩进。

3、修改或删除重要数据前,要先备份。

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

5、where后面的字段,留意其数据类型的隐式转换。

未使用索引

SELECT * FROM user WHERE NAME=110

 

(1) 因为不加单引号时,是字符串跟数字的比较,它们类型不匹配

(2)MySQL会做隐式的类型转换,把它们转换为数值类型再做比较

6、尽量把所有列定义为NOT NULL

NOT NULL列更节省空间,NULL列需要一个额外字节作为判断是否为 NULL的标志位。

NULL列需要注意空指针问题,NULL列在计算和比较的时候,需要注意空指针问题。

7、伪删除设计

8、数据库和表的字符集尽量统一使用UTF8

(1)可以避免乱码问题。

(2)可以避免,不同字符集比较转换,导致的索引失效问题。

9、select count(*) from table;

这样不带任何条件的count会引起全表扫描,并且没有任何业务意义,是一定要杜绝的。

10、避免在where中对字段进行表达式操作

(1)SQL解析时,如果字段相关的是表达式就进行全表扫描

(2)字段干净无表达式,索引生效

11、关于临时表

(1)避免频繁创建和删除临时表,以减少系统表资源的消耗;

(2)在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log;

(3)如果数据量不大,为了缓和系统表的资源,应先create table,然后insert;

(4)如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除。先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。

12、索引不适合建在有大量重复数据的字段上,比如性别,排序字段应创建索引

13、去重distinct过滤字段要少

带distinct的语句占用cpu时间高于不带distinct的语句

当查询很多字段时,如果使用distinct,数据库引擎就会对数据进行比较,过滤掉重复数据

然而这个比较、过滤的过程会占用系统资源,如cpu时间

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

15、所有表必须使用Innodb存储引擎

Innodb「支持事务,支持行级锁,更好的恢复性」,高并发下性能更好,所以呢,没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎。

16、尽量避免使用游标

因为游标的效率较差,如果游标操作的数据超过1万行,那么应该考虑改写。

相关文章
|
1月前
|
SQL 存储 关系型数据库
如何巧用索引优化SQL语句性能?
本文从索引角度探讨了如何优化MySQL中的SQL语句性能。首先介绍了如何通过查看执行时间和执行计划定位慢SQL,并详细解析了EXPLAIN命令的各个字段含义。接着讲解了索引优化的关键点,包括聚簇索引、索引覆盖、联合索引及最左前缀原则等。最后,通过具体示例展示了索引如何提升查询速度,并提供了三层B+树的存储容量计算方法。通过这些技巧,可以帮助开发者有效提升数据库查询效率。
112 2
|
9天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
18天前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
64 10
|
17天前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
1月前
|
SQL 资源调度 分布式计算
如何让SQL跑快一点?(优化指南)
这篇文章主要探讨了如何在阿里云MaxCompute(原ODPS)平台上对SQL任务进行优化,特别是针对大数据处理和分析场景下的性能优化。
|
1月前
|
SQL 监控 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
1月前
|
SQL 关系型数据库 PostgreSQL
遇到SQL 子查询性能很差?其实可以这样优化
遇到SQL 子查询性能很差?其实可以这样优化
88 2
|
1月前
|
SQL 存储 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
1月前
|
SQL 数据处理 数据库
SQL语句优化与查询结果优化:提升数据库性能的实战技巧
在数据库管理和应用中,SQL语句的编写和查询结果的优化是提升数据库性能的关键环节
|
1月前
|
SQL 存储 数据库
慢SQL对数据库写入性能的影响及优化策略
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生不利影响