数据库优化一

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

对于大量的数据记录(百万级别)查询优化,应该避免对数据库进行全表扫描。

以下会提升效率

1.应考虑在 where 及 order by 涉及的列上建立索引。

以下会导致数据库进行全表扫描,降低效率

1.在where子句中使用null判断。(除描述、备注等字段外,应尽量避免给数据库字段留null);

2.在where子句中使用 != 或 <> 操作符;

3.在where子句中使用 or 来连接条件,如or前后的条件一个字段有索引,另一个没有则会使数据库放弃使用索引进行搜索改为全表搜索(可用union关键字替代避免全局搜索);

4.在where子句中使用in和not in关键字也会触发全局搜索(对于连续的数值可用between关键字替代in);

5.如此

select id from t where name like ‘%abc%’

模糊查询也会导致数据库使用全表搜索(可用全文搜索替代以达到提高效率的目的如SELECT id FROM t WHERE MATCH (name) AGAINST('+abc' IN BOOLEAN MODE);)

6.在 where 子句中对字段进行表达式操作

SELECT * FROM t WHERE num/2 = 100; 

应写成:

SELECT * FROM t WHERE num = 100*2;

7.在where子句中对字段进行函数操作;

 

 

转载于:https://my.oschina.net/betteru/blog/3017987

你可能感兴趣的:(数据库优化一)