保护索引要注意的问题「建议收藏」

保护索引要注意的问题

大家好,又见面了,我是全栈君。

1. IS NULL 与 IS NOT NULL



        不能用null作索引。不论什么包括null值的列都将不会被包括在索引中。

即使索引有多列这种情况下,仅仅要这些列中有一列含有null。该列就会从索引中排除。

也就是说假设某列存在空值,即使对该列建索引也不会提高性能。
  不论什么在where子句中使用is null或is not null的语句优化器是不同意使用索引的。
2. 避免使用不兼容的数据类型。

        不兼容的数据类型代表着全表检索数据的类型转换。訪问将变为全表扫描
        select * from employee where last_name = 100;注last_name为varchar类型
3. 联接列
  对于有联接的列,即使最后的联接值为一个静态值,优化器是不会使用索引的。
        eg:select * from employee where first_name||”||last_name =’chen junjie’;
4.通配符(%)开头的like语句
        select * from employee where last_name like ‘%junjie%’;
5.索引字段上进行运算会使索引失效。
        尽量避免在WHERE子句中对字段进行函数或表达式操作,这将导致引擎放弃使用索引而进行全表扫描。
        eg:SELECT * FROM T1 WHERE F1/2=100 应改为: SELECT * FROM T1 WHERE F1=100*2
6.避免使用!=或<>、IN 。NOT IN等这种操作符.
        由于这会使系统无法使用索引,而仅仅能直接搜索表中的数据。

        eg:select * from employee where age != 30;
        优化器将无法通过索引来确定将要命中的行数,因此须要搜索该表的全部行。
        改成:select * from employee where age<30 or age>30;()
7.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,
        如:  select id from employee  where num=10 or num=20 
        能够这样查询:  select id from employee  where num=10 union all  select id from employee where num=20 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116465.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月21日 上午6:00
下一篇 2022年1月21日 上午6:00


相关推荐

  • 手把手教你怎么在PyCharm中导入库

    手把手教你怎么在PyCharm中导入库大家都知道 Python 是一个极其方便的由库构建的编程语言 比如机器学习的库 sklearn 文件读取 pandas 文件读写 xlwt xlrt 矩阵运算 numpy 等等等等等等等等等等 多到你无法想象 那到底如何导入 Python 库呢 我们今天就来学习一下 点击 File gt NewProject 创建一个 PyCharm 项目 然后点击 File gt Settings gt P

    2026年3月17日
    2
  • JAVA获取服务器文件名乱码,java获取的文件名乱码问题

    JAVA获取服务器文件名乱码,java获取的文件名乱码问题java 获取的文件名乱码问题 2021 02 0911 22 59 简介 phpie 中文乱码的解决办法 首先判断下载文件的所有浏览器是否是 IE 浏览器 然后对文件名进行 urlencode 转义编码即可解决乱码问题 推荐 PHP 视频教程 解决 php 文件下载 IE 文件 php 上传文件名乱码的解决办法 首先打开 Upload html 文件 然后添加语句 enctype multipart f

    2026年3月26日
    2
  • PhpStorm 2021.12.13激活码(注册激活)[通俗易懂]

    (PhpStorm 2021.12.13激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlFN…

    2022年3月30日
    42
  • decode encode区别_python decode和encode

    decode encode区别_python decode和encode#-*-coding:utf-8importsys”’*首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb231…

    2022年10月7日
    9
  • XSL教程(1)

    XSL教程(1)

    2021年7月22日
    54
  • WeakHashMap初探「建议收藏」

    WeakHashMap初探「建议收藏」1、特点:随着时间的推移,其中的元素会被垃圾回收器回收2、涉及到的4中引用:强引用:(StrongReference)就是指在程序代码之中普遍存在的,例如以下代码:Objectobject=newObject();Stringstr=”hello”;强引用关联的对象在内存不够时也不会被垃圾回收器回收,回收时间:当前对象为null时被回收;软引用:(SoftRefe…

    2022年5月6日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号