SQL语句的优化

sql语句的优化:
多使用共享语句 尽量使你的sql语句能够使用索引。
怎样使sql语句能够使用到索引呢:
当sql语句中包含not in,<>,is null,is not null,like '%%'的时候不会用索引。

IN: in 会拆成一堆 or 的,可以使用表的索引。

NOT IN:强列推荐不使用,因为它不能应用表的索引。

<> 操作符(不等于): 不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。
优化方案:用其它相同功能的操作运算代替,如a<>0 改为 a>0 or a<0;a<>’’ 改为 a>’’.

IS NULL 或IS NOT NULL操作(判断字段是否为空):
判断字段是否为空一般是不会应用索引的,
因为 B 树索引(oracle大多是使用 B 树索引)是不索引空值的。
优化方案:用其它相同功能的操作运算代替,如 a is not null 改为 a>0 或a>’’等。
is null 时,用一个缺省值代替空值,例如业务申请中状态字段不允许为空,缺省为申请。

LIKE:LIKE操作符可以应用通配符查询,里面的通配符组合可能达到几乎是任意的查询,
但是如果用得不好则会产生性能上的问题,

优化方案:如LIKE ‘%001%’ 这种查询不会引用索引,会产生全表扫描,
而LIKE ‘001%’则会引用范围索引。进行范围的查询,性能肯定大大提高。
*/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 13,332评论 0 44
  • Mac下的端口转发 最近开始使用Mac来作为开发机了,还是有很多不习惯,比如端口转发这件小事,windows上可以...
    jarvan4dev阅读 13,921评论 1 4
  • 2018年3月12日 星期一 晴 今天我跟孩子自己坐车去学校来晚了,从早上开始一天都不顺。又看到孩子英语作业完成...
    高锦泽阅读 1,436评论 0 0
  • 你会下意识的伤害自己,大概就是割到手,烫到皮肤,磕到膝盖吧,千万要小心,好好照顾好自己。
    1122a阅读 1,099评论 0 0
  • 说起我的朋友圈,每天发一些图片,发一些感悟,或者偶尔矫情,基本没有人评论或者点赞,意识到这样的局面,我渐渐收手,不...
    一只正在成长的狮子阅读 1,526评论 4 6

友情链接更多精彩内容