首页 > 数据库 >什么情况下数据库表索引会失效?

什么情况下数据库表索引会失效?

时间:2023-08-18 15:36:27浏览次数:43  
标签:数据库 索引 template 使用 失效 where id select

什么情况下数据库表索引会失效?

1.单独引用复合索引里非第⼀位置的索引列 假如有INDEX(a,b,c), 当条件为a或a,b或a,b,c时都可以使用索引

但是当条件为b,c时将不会使用索引。

复合索引遵守“最左前缀”原则,即在查询条件中使用了复合索引的第 ⼀个字段,索引才会被使用。因此,在复合索引中索引列的顺序⾄关重要。如果不是按照索引的最左列开始查找,则⽆法使用索引。

2.对索引列运算,运算包括(+、-、*、/、!、、%、like’%_’(%放在前面)、or、in、exist等),导致索引失效。

错误的例⼦:select * from test where id-1=9;

正确的例⼦:select * from test where id=10;

注意!!

mysql sql 中如果使用了 not in , not exists , ( 不等于 !=) 这些不⾛ < 小于 > ⼤于 = 这个根据实际查询数据来判断,如果全盘扫描速度比索引速度要快则不⾛索引 。

3.对索引应用内部函数,这种情况下应该建立基于函数的索引。

select * from template t where ROUND(t.logicdb_id) = 1
此时应该建ROUND(t.logicdb_id)为索引。

4、类型错误,如字段类型为varchar,where条件用number。

例:template_id字段是varchar类型。

错误写法:select * from template t where t.template_id = 1

正确写法:select * from template t where t.template_id = ‘1’

5.如果MySQL预计使用全表扫描要比使用索引快,则不使用索引

6.like的模糊查询以%开头,索引失效

7.索引列没有限制 not null,索引不存储空值,如果不限制索引列是 not null,oracle会认为索引列有可能存在空值,所以不会按照索引计算

标签:数据库,索引,template,使用,失效,where,id,select
From: https://blog.51cto.com/u_16207938/7136864

相关文章

  • 亚信科技AntDB数据库连年入选《中国DBMS市场指南》代表厂商
    近日,全球权威ICT研究与顾问咨询公司Gartner发布了2023年《MarketGuideforDBMS,China》(即“中国DBMS市场指南”),该指南从市场份额、技术创新、研发投入等维度对DBMS供应商进行了调研。亚信科技是领先的数智化全栈能力提供商,作为国内最早一批投入数据库研发的企业,其自研的AISWare......
  • 防止openlayers在draw绘制状态按shift功能失效
    newDraw({source:this.map.source,type:type,geometryFunction:geometryFunction,condition:()=>{returntrue;},freehandCondition:()=>{returnfalse;}});......
  • Python 矢量数据库和矢量索引:构建 LLM 应用程序
    推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景由于使用其硬件创建的生成式AI应用程序,Nvidia经历了显着的增长。另一项软件创新,矢量数据库,也正在乘着生成式人工智能的浪潮。开发人员正在向量数据库上用Python构建AI驱动的应用程序。通过将数据编码为向量,他们可以利......
  • 批量备份数据库日志且30天后自动删除该备份文件
    /********************************************批量备份数据库日志且30天后自动删除该备份文件*******************************************/DECLARE@backupfileVARCHAR(1024)DECLARE@filenameVARCHAR(1024)DECLARE@pathVARCHAR(1024)DECLARE@dbnameVARC......
  • Flowable 6.6.0版本中的数据库表解读 - ACT_ID篇
    本文将介绍Flowable6.6.0版本中以ACT_ID_开头的表,ID表示identity(组织机构),包含用户、权限、用户组。ACT_ID_GROUP这个表存储了组信息。字段名字段含义ID_主键IDREV_修订版本号NAME_组名称TYPE_组类型ACT_ID_INFO这个表存储了一些标识信息。......
  • 存储和数据库
    实例存储和AmazonElasticBlockStore(AmazonEBS)实例存储数据块级存储卷的作用类似于物理硬盘。实例存储为AmazonEC2实例提供临时性数据块级存储。实例存储是指实际挂载到EC2实例宿主机的磁盘存储,因而具有与该实例相同的生命周期。当实例终止时,实例存储中的所有数据......
  • 深入理解 Elasticsearch 中的倒排索引与倒排列表
    在现代的后端开发中,搜索引擎已经成为了许多应用不可或缺的一部分。Elasticsearch作为一款强大的搜索引擎和分布式数据存储系统,其背后所使用的核心技术之一就是倒排索引(InvertedIndex)。本文将深入探讨倒排索引的原理,以及在Elasticsearch中如何利用倒排索引进行高效的全文搜索。......
  • 解密数据库连接池的奥秘与优化策略
    在后端开发中,数据库是应用程序的核心数据存储和管理部分。为了高效地处理数据库连接,提升应用性能,数据库连接池成为了不可或缺的技术。本文将深入探讨数据库连接池的工作原理,并介绍一些优化策略,帮助你更好地理解和使用数据库连接池。数据库连接池的背景与作用数据库连接是有代价的资......
  • 星瑞格数据库介绍
    随着数字化时代的到来,数据已成为企业发展的核心资产之一。数据库作为存储、管理和查询数据的重要工具,在企业信息化建设中扮演着至关重要的角色。本文将介绍星瑞格数据库,分析其在企业中的应用场景和未来发展趋势。星瑞格数据库概述星瑞格数据库是一种高性能、高可用、可扩展的分布......
  • 高可用数据库架构:利用主备复制和故障切换保障数据可用性
    在现代的数字化时代,数据库是组织和企业不可或缺的核心基础设施之一。然而,数据库故障和数据不可用性可能会导致严重的业务中断和损失。为了保障数据的高可用性,构建一个强大的高可用数据库架构至关重要。本文将介绍如何利用主备复制和故障切换来保障数据库的可用性。什么是高可用......