sql优化
1.对查询进行优化,要尽量避免全表扫描,首先应该考虑在where 及 order by 涉及到的列上建立索引。 任何在order by 语句的非索引项或者有计算表达式都将降低查询速度。 2.应尽量避免在where 子句中对字段进行null值判断,否则将导致音区放弃使用索引而进行全表扫描,任何在wehre 子句中使用 is null 或 is not null 的语句优化器是不允许使用索引的。 3.最好不要给数据库流NULL,尽可能的使用 NOT NULL 填充数据库。 NULL值也是可能会需要占用空间的,一些订场的数据类型即时使数据为null 也是会占用空间的。 4.应尽量避免在 where 子句中使用 != 或者 <> 操作符, 否则引擎将放弃使用索引而进行全表扫描。 5.应尽量避免在where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描,可以使用 union/union all 代替。 6.in 和 not in 也要慎用,否则会导致全表扫描。 一般情况下,当 IN中的条件太多,或者无法估计时,优化器倾向于全表扫描。 当IN的条件少时,如果优化器任务,INDEX SEEK 可以带来好处时,照样会走索引的,至于in到底会不会走索引,not in 肯定不会走 索引