数据库优化

简介: 数据库优化
+关注继续查看

1、对查询进行优化,尽量避免全表扫描(select * from Table), 首先考虑在where及OrderBy使用的列加索引。


2、尽量避免在 where 语句中对字段进行  null 值条件搜索,否则将导致引擎放弃使用索引,从而进行全表扫描,如:


    select name from Table where name is null;可以在name列设置默认值,确保该列没有null值,


    查询语句修改后:select name from Table where name = "默认值"


3、并不是所有索引对查询都有效,SQL是根据表中的数据来进行查询优化的,当索引列有大量重复数据时,查询可能不会        去利用索引。


4、索引并不是越多越好,索引固然可以挺高相应的查询速度,但同时也降低了 Insert和 Update的效率。


    因为Insert和Update时可能会重建索引。一个表的索引数最好不要超过6个。


5、尽量使用数字型字段,若只含数值的字段尽量不要定义为字符型,这样会降低查询和连接的性能,并会增加存储开销。


6、尽量避免where语句中使用 "!=" 或 "<>" 操作符,否则引擎将会放弃使用索引而进行全表扫描。


7、尽量避免where语句中使用 or 来连接条件,否则引擎将会放弃使用索引而进行全表扫描。


     如 select name from Table where num = 1 or num = 2;


     修改后:select name from Table num  = 1 union all select name from Table where num = 2;


8、int、not in 、like条件查询,引擎也会放弃使用索引而进行全表扫描。


9、尽量避免where语句中对字段进行表达式操作,引擎也会放弃使用索引而进行全表扫描。


     如:select name from Table where num/2=50


     修改后:select name from Table where num = 2 * 50;


10、exists 可代替 in 使用


       select name from Table where id in (1,2,3)


       select name from Table where id exists (1,2,3)


11、尽量避免使用游标,因为游标的效率低。


相关文章
|
20天前
|
数据库 索引
数据库性能优化中的索引优化
数据库性能优化中的索引优化
|
1月前
|
存储 缓存 关系型数据库
数据库优化
数据库优化
|
1月前
|
SQL 关系型数据库 MySQL
MySQL优化方案
MySQL优化方案
232 9
MySQL优化方案
|
4月前
|
SQL Prometheus 监控
数据库优化 - SQL优化
数据库优化 - SQL优化
86 0
|
4月前
|
SQL 缓存 运维
数据库优化 - 实例优化
数据库优化 - 实例优化
50 0
|
7月前
|
SQL 数据库 索引
数据库优化四个方面
数据库优化四个方面
|
10月前
|
自然语言处理 搜索推荐 Java
数据库优化 | 学习笔记
快速学习数据库优化
|
SQL 存储 缓存
数据库优化
昨天遇到一个问题, 200万的表里查询9万条数据, 耗时达63秒. 200万数据不算多, 查询9万也还好. 怎么用了这么长的时间呢? 问题是一句非常简单的sql.
126 0
数据库优化
|
SQL 存储 运维
数据库性能优化,究竟该如何下手?
数据库性能优化,究竟该如何下手?
数据库性能优化,究竟该如何下手?
|
存储 SQL 缓存
大厂都在用的MySQL优化方案(中)
大厂都在用的MySQL优化方案
141 0
大厂都在用的MySQL优化方案(中)
推荐文章
更多