澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站数据库SQL优化大总括,百

网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。

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

前言:

对于目前的iOS应用,大的数据量操作是一个不可避免的问题,本文仅对sqlite数据库大数据量操作进行优化策略:

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

mysql-SQL优化总结,mysql-sql总结

1、查询首先考虑在where和order by设计的列上建立索引,尽量避免全表扫描。

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

select id from t where num is null

  最好不要给数据库字段留null,尽可能使用not null填充数据库。备注、描述、评论之类的可以设置为 NULL,其他的,最好不要使用NULL

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

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

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

  可以这样查询:

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

 5、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

 

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

select num from a where num in(select num from b)

 

 用下面的语句替换:

select num from a where exists(select 1 from b where num=a.num)

 

6、下面的查询也将导致全表扫描,通配符在最前面。

select id from t where name like ‘
		

本文由澳门新浦京娱乐场网站发布于数据库,转载请注明出处:澳门新浦京娱乐场网站数据库SQL优化大总括,百