Oracle数据库优化
程序员文章站
2022-06-02 15:43:20
...
1. 使用索引
当SQL中含有max 、min 、order by 时增速明显。
建立索引应用于Join 、where 、order by排序的字段上,
避免建立在含有大量重复的字段上,例如某个具有枚举类型的字段,
避免索引所在的字段含有 Null 值
//索引会降低 Insert 、 Update 的速率
2. 选取最适用的字段属性
Char 是定长, Varchar 是变长,
如果是备注说明字段, Varchar 效果好于 Char ,
如果是邮政编码、手机号等,可以直接给其定长,
3. 尽量把字段设置成 Not Null
这样查询时,数据库不用去比较 Null 值
4. 使用 Join 代替子查询
子查询即使用 IN 、Not IN
//很多时候 exists 代替 IN 是一个很好的选择
//对于连续的数值,能使用 between 就不要用 IN 了
5. 使用 with xx as (select xx from xx) 将需要的字段先取出来,
再进行关联查询
6. 避免在 Where 子句中使用 != 或 <> 会使数据库放弃使用索引而进行全表扫描
//解决:可以使用 < 和 > 拼接代替
7. 避免在 Where 子句中使用 or 来连接
如果一个字段有索引而另一个没有会使数据库放弃索引而进行全表扫描
//解决:可以使用 union 来拼接
8. like 会导致全表扫描
9. select xx1, xx2 from xx
效率大于
select * from xx
10. 避免使用游标
11. 分库