3.21 数据库优化

参考资料:oracle数据库优化:https://blog.csdn.net/weixin_39106371/article/details/82117148

详细的SQL优化方案:https://blog.csdn.net/jianzhang11/article/details/102867120?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param

 

 

1.SQL优化
1.索引会大大增加表记录的DML(INSERT,UPDATE,DELETE)开销(BTREE原理(平衡索引字典查询)) 索引,建立索引是数据库优化各种方案之中成本最低,见效最快的解决方案,一般来讲,数据库规模在几十万和几百万级别的时候见效最快。 索引加字段;当字段上建有索引时,通常以下情况会使用索引: INDEXCOLUMN 运算符操作
INDEXCOLUMN between ? and ? INDEXCOLUMN in (?,?,...,?)
INDEXCOLUMN like ?||‘%‘(后导模糊查询) T1. INDEXCOLUMN=T2. COLUMN1(两个表通过索引字段关联)

适合当索引字段:主键,外键,有特殊意义的,
日期,大字段,数值不适合加索引
2.返回更明确的字段(SQl分页)
3.减少交互次数
4.优化业务逻辑

2.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
2.尽量避免在 where 子句中使用 != 或 <> 操作符以及is null、不用or 来连接条件、in和 not in 也要慎用
如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描
instr()与like比较
instr函数也有三种情况:
a. instr(字段,‘关键字‘) > 0 相当于 字段like ‘%关键字%‘: 表示在字符串中包含‘关键字’
b. instr(字段,‘关键字‘) = 1 相当于 字段like ‘关键字%‘ 表示以‘关键字’开头的字符串
c. instr(字段,‘关键字‘) = 0 相当于 字段not like ‘%关键字%‘ 表示在字符串中不包含‘关键字’

模糊查询原文链接:https://blog.csdn.net/Weixiaohuai/article/details/83513957

3.21 数据库优化

上一篇:SQL练习题23:获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的manager当前的薪水manager_salary


下一篇:使用git pull提示refusing to merge unrelated histories