1、SQL简单优化:
1、尽量少用IN操作符:
在选择IN或EXIST操作时,要根据主子表数据量大小来具体考虑。子查询数量较大时才用EXIST。
2、尽量不用"<>“或者”!="操作符:
不等于操作符一般不会用到索引,改为>或<。
3、在设计表时,把索引列设置为NOT NULL:
判断字段是否为空一般是不会应用索引的,因为B树索引是不索引空值的。
4、尽量不用通配符"%“或者”_"作为查询字符串的第一个字符:
索引不会使用。
5、where字句中避免在索引列上使用计算:
如果索引不是基于函数的,那么当在where字句中对索引列使用函数时,索引不再起作用。
6、用">=“代替”>":
分情况
7、where后面的条件顺序要求:
从右往左解析,WHERE后面的条件,表连接语句写在最前,可以过滤掉最大数量记录的条件居后。
8、使用表的别名。并将之作为每列的前缀:
可以减少解析时间。
9、用UNION ALL代替UNIO:
避免去重复。
2、索引的缺点:
增删改,sql操作会慢很多。