索引

oracle:索引(B树索引,位图索引,分区索引,主键索引,唯一索引,联合索引/组合索引,函数索引) 是 Oracle 数据库中一种最常见的索引类型, 索引没有指定索引类型时默认是B树索引。它适用于查询条件中包含函数或表达式的场景, 常用于优化复杂的计算列查询以及大小写不敏感的查询, 默认属于B树索引, 不支持将函数索引直接指定为哈希索引。索引(a , b , c) 有3个字段,相当于建了3个索引, 即索引(a) , 索引(a , b) , 索引(a, b , c)指在多个列上创建的索引。主键索引和唯一索引通常都是使用B树索引来实现的, 通常不将主键索引和唯一索引指定为位图索引/哈希索引。 阅读详情

对于一些对的数据库还不太清楚的同胞们,应该对索引也不是很了解吧,下面我们就介绍一下索引的基本的一些知识

1、什么是索引

索引顾名思义就是表中所有记录的搜索引导,就好像是书的目录一样,可以引导我们去找到我们想要找的内容。


2、索引的内部结构

B树结构,就是一种树状结构。各个节点中保存着符合关键字以及指针组成的数组。指针当然是确定数据位置的信息,节点就是由这些指针相互关联起来。

最上层的节点被称为根节点,最下层的节点被称为叶子节点,两者之间的节点被称为中间节点。

B树结构一个显著的特征是从根节点到各个叶子节点的距离相等。这样,检索然和值时经过相同数目的节点,能提高检索效率。

B树检索的过程一般是在根节点中的各个值进行比较,发现匹配的中间节点,再和中间节点进行匹配,比较,随后就去检索叶子节点,取出对应的指针,就是检索的记录。


3、索引的设置与分析

创建索引时使用CREATE  INDEX 命令,CREATE[UNIQUE]  INDEX  索引名  on  表名(列名)

使用SHOW INDEX 命令来显示表中所有创建完成的索引信息,SHOW   INDEX   FROM    表名;


我们输入命令以后,会查询出下面的这些内容,然后和大家一一介绍一下查询出来的内容

Table:对象表名

Non_unique:是否允许重复(1:许可,0:禁止)

Key_name:索引名

Seq_in_index:索引内放入域序号(从1开始)

Column_name:域名

Collation:排序(A:升序,Null:不排序)

Cardinality:索引内的非重复值的数目

Sub_part:作为索引部分的域内的字符数

Packed:关键字的压缩方式

Null:是否语序为Null

Index_type:索引的类型

Comment:备注


4、创建多列构成的复合索引及唯一性索引

复合索引:create index  索引名  On  表名 (列名,……)

唯一性索引:create  unique  index  索引名  on  表名(列名)

在创建唯一性索引时如果指定lUNIQUE关键字,则可创建不可重复的索引,称为唯一性索引。对特定的列创建唯一性索引,相当于对该列追加了唯一性的制约,设定了唯一性索引,如果插入相同内容时系统就会给出错误提示。在生成唯一性索引时,如果列中已经含有重复的数据,那么创建唯一索引失败。


确认索引的使用情况:EXPLAIN调查对象select 语句。

explain查询出内容的详解



5、无法使用索引的情况

1)进行后方一致/部分一致检索的场合

2)使用了IS  NOT  NULL、比较运算符的场合

3)队列使用了运算/函数的场合

4)符合索引的第一列没有包含在WHERE条件语句中的场合

从 Service Entry Sheet 按 PO 行项目追溯服务行:PACKNO 与 ESLL 层级解包实战 摘要: SAP MM模块中,外部服务采购的数据结构较为复杂,服务明细并非直接存储在采购订单行项目表EKPO中,而是通过PACKNO关联到服务包表ESLL。本文解析了从采购订单行项目EBELN+EBELP获取服务行号SRVPOS的方法,重点分析了服务包的层级结构(根包、子包SUB_PACKNO),并提供了兼容合同项目的ABAP代码实现。通过EKPO-PACKNO定位根包后,需结合ESUC和ESLL表逐层解析子包,最终获取服务明细数据,解决了服务采购场景下的数据关联难题。(149字) 阅读详情

相关推荐

S4 HANA 1809+折旧过账(AFAB/AFABN)凭证行数据存储逻辑变迁:从BSEG到ACDOCA的深度解析

本文深度解析了S4 HANA 1809+版本中折旧过账(AFAB/AFABN)凭证行数据存储逻辑的变迁,从传统的BSEG表迁移到ACDOCA表。文章详细探讨了这一变更的技术背景、官方设计意图及实际影响,包括数据存储量减小和系统性能提升等优势。同时提供了升级项目的应对策略和最佳实践建议,帮助用户顺利过渡到新的数据存储模型。

weixin_28731223的博客 293

MySQL中聚集索引、非聚集索引、联合索引、覆盖索引

在《面试官:为啥加了索引查询会变快?》一文中,我们介绍了索引的数据结构,正是因为索引使用了B+树,才使得查询变快。说白了,索引的原理就是减少查询的次数、减少磁盘IO,达到快速查找所需数据的目的 我们一起来看一下InnoDB存储引擎中的索引 聚集索引 聚集索引(clustered index)就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。聚集索引的这个特性决定了索引组织表中数据也是索引的一部分 (备注:真实的B+树叶子节点是通过链表相连的,

果子爸聊技术 2万+

STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能

单片机实现LWIP的调试

qq_40600203的博客 3068

聚集索引、辅助索引、覆盖索引、联合索引

《MySQL技术内幕 InnoDB存储引擎》学习笔记聚集索引(Clustered Index)聚集索引就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据。举个例子,直观感受下聚集索引。创建表t,并以人为的方式让每个页只能存放两个行记录(不清楚怎么人为控制每页只存放两个行记录):、最后《MySQL技术内幕》的作者通过分析工具得到这棵聚集索引树的大致构造如下: 聚集索引的叶

Bingo! 2万+

遗传算法驱动吃豆人进化:从零构建AI游戏智能体

遗传算法是一种模拟自然选择过程的优化技术,其核心原理是通过选择、交叉和变异等操作,在解空间中迭代搜索最优解。该技术为解决复杂优化问题提供了强大工具,尤其在游戏AI、机器人控制和参数调优等场景中价值显著。在游戏AI领域,遗传算法常被用于训练智能体自主决策,例如在经典游戏《吃豆人》中,通过定义智能体的“基因”(如神经网络权重)和“适应度”(如游戏得分),可以引导其进化出躲避幽灵、高效吃豆等策略。本项目结合Pygame框架与神经网络,构建了一个完整的遗传算法训练沙盒,详细展示了如何通过适应度函数设计和参数调优,实

weixin_30467199的博客 273

Bybit面经

这段总结描述了求职者在Bybit面试过程中的经历和相关问题,包括面试内容、求职者向面试官提问的问题以及关于Bybit的信息

郑泽洲的博客 2580

Oracle索引详解(索引的原理,创建索引,删除索引,修改索引等)

Oracle索引的介绍,索引的创建,索引的删除和修改等

xinliucs的博客 2万+

使用Kettle进行数据同步(增量)

文章目录kettle介绍kettle安装kettle使用使用kettle同步关系型数据库数据(MySQL示例)1. 创建一个转换2. 选择表输入3. 格式转换4. 执行脚本5. 创建job使用kettle同步NoSql数据(MongoDB示例)创建转换时的注意事项MongoDBInput怎么创建job的创建如何在Linux上面运行已经创建好的job?1、把创建好的job传输到Linux机器上面2、编辑kjb文件3、执行任务 kettle介绍 Kettle 是一款国外开源的 ETL 工具,纯 Java 编写

JenKin的博客 7351

MYSQL的索引(主键索引、唯一索引、普通索引、全文索引)

一、MYSQL索引的分类 索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。如果表中有相关​​列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。 MYSQL的索引主要分为主键索引(PRIMARY KEY),唯一索引(UNIQUE),普通索引(INDEX)和全文索...

jmx_bigdata的博客 4万+

【学习系列】SAP RAP 2:创建第一个RAP应用

本文介绍了从零开始创建基于SAP RAP(ABAP RESTful Application Programming Model)的Fiori应用的完整流程。首先说明了学习RAP需要结合官方文档和教程,并提供了相关资源链接。文章详细讲解了开发环境的准备要求,包括系统版本、开发工具和基本知识。重点演示了如何通过8个步骤创建支持CRUD操作和草稿功能的RAP应用:1)创建数据库表;2)定义CDS视图实体;3)创建投影视图;4)定义行为;5)创建行为投影;6)定义服务;7)绑定服务;8)添加UI注解。

DeveloperMrMeng的博客 1498

【推荐100个unity插件】在unity快速生成3D人物自然姿势和动作,且支持按图像生成姿势—— Pose AI

PoseAI是一款基于肌肉的智能动画创作工具,通过神经网络和逆运动学技术实现自然姿势生成。主要功能包括:自动/手动角色设置、神经控制装备、姿态估计与预览等。工具支持从2D图像生成3D姿势,并能在编辑器中实时预览动画效果。其神经网络架构采用前馈网络与ResNet结合的方式,通过多层全连接和ReLU激活函数处理输入数据。PoseAI简化了动画制作流程,提供高效的姿势创作解决方案,适用于Unity游戏开发。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1361

MySQL的索引(普通索引、唯一索引,主键索引、组合索引、全文索引、空间索引)相关操作

目录 索引介绍 Hash索引和B+tree索引的区别 应用场景 索引分类 普通索引 创建单列索引——普通索引(3种语法) 查看数据库中的索引 查看数据表中的索引 删除索引 唯一索引 主键索引 组合索引 创建和删除组合索引 全文索引 全文索引的案例 空间索引 索引的优点 索引的缺点 创建索引的原则 Hash算法 二叉树 平衡二叉树 BTREE树 每文一语 索引介绍 索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索引,..

迷茫与徘徊只会让你陷入绝境,欢迎私信博主,带你开始提升变现价值! 5979

python爬虫项目(六十八):爬取电商平台用户购买历史数据,分析消费行为

本文详细介绍了如何爬取电商平台用户购买历史数据,并分析其消费行为。通过爬虫技术、数据存储、分析和可视化等步骤,可以深入了解消费者的行为特征。未来,随着数据分析技术的不断发展,利用人工智能和机器学习方法对消费行为进行更深层次的分析,将成为电商平台提升竞争力的重要手段。

斌擎科技 2768

聚簇索引、非聚簇索引、联合索引、唯一索引

也就是说,聚簇索引的叶子节点中,包含了一个完整的记录行。非聚簇索引也叫辅助索引、普通索引,它的叶子节点只包含一个主键值,通过非聚簇索引查找记录要先找到主键,然后通过主键再到聚簇索引中找到对应的记录行,这个过程被称为回表。新版本的MySQL(5.6以上)中引入了索引下推的机制:可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表次数。联合索引指的是同时对多列创建的索引,创建联合索引后,叶子节点会同时包含每个索引列的值,并且同时根据多列排序,这个排序和我们所理解的字典序类似。

代码是程序员的语言,博客是思想的桥梁,连接你我,共享智慧之光。 4054

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【名词解释与区分】聚集索引、非聚集索引、主键索引、唯一索引、普通索引、前缀索引、单列索引、组合索引、全文索引、覆盖索引

毕竟索引叶子节点存储了它们索引的数据;1、组合索引具有最左前缀原则,创建组合索引时,要考虑列的顺序,例如A,B两个字段都会在查询中用到,但A使用的频率更高,就将A作为组合索引的第一个字段,放在最左边。3、如果这张表也没有唯一非空索引,那么 InnoDB 内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键是一个 6 个字节的列,该列的值会随着数据的插入自增。2、组合索引具有最左前缀原则,在写where查询时,如果一次使用组合索引的左侧列查询,组合索引有效,直接使用后几列查询,组合索引无效。

十一月廿七风雨大作 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

索引,主键,唯一索引,联合索引的区别

https://blog.youkuaiyun.com/qq_33275924/article/details/80220797 https://www.cnblogs.com/ymj0906/p/4240856.html 索引是一种特殊的文件,它们包含着对所有记录的引用指针。索引可以极大地提高数据查询速度,但是会降低插入删除更新表的速度,因为在执行这些操作是,还要操作索引文件用来维护,所以说索引不是建的越多...

try to do 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【MySQL】索引 (下) —— 索引的类型、创建索引、删除索引

本文详细介绍了MySQL索引的分类、创建与删除方法。主要内容包括:1. 索引类型划分:按物理存储分为聚集索引(InnoDB特有)和非聚集索引;按逻辑功能分为主键索引、唯一索引、普通索引、复合索引和全文索引。2. 索引特性:聚集索引直接存储数据,非聚集索引存储键值;介绍了索引覆盖与回表查询概念。3. 索引操作:详细说明了各类索引的3种创建方式(建表时指定、ALTER语句修改、CREATE INDEX创建)和删除方法(主键索引需特殊处理)。4. 复合索引:创建规则和使用注意事项,包括主键复合索引和唯一复合索引的

2301_80030290的博客 871

MySQL的三种索引:主键索引,普通索引,联合索引

主要介绍了MySQL的三种索引以及其数据结构。

Orange_42的博客 2125

数据库表索引:普通索引、唯一性索引、全文索引、多列索引、隐藏索引、删除索引

表索引普通索引唯一索引全文索多列索引隐藏索引删除索引设计原则 普通索引 索引存储: 数据库底层索引实现主要有两种存储类型,B树(BTREE)和哈希(HASH)索引,InnoDB和MyISAM 使用BTREE索引;而MEMORY 存储引擎可以使用BTREE 和HASH 索引,默认用BTREE.在没有指定的情况下,数据库使用的引擎是 InnoDB。 可以提高检索数据的速度。 创建和维护索引需要耗费时间,耗费时间的数量随着数据量的增加而增加;索引需要占用物理空间,每一个索引要占一定的物理空间;增加、删除和修改数

m0_46376834的博客 4919

mysql聚集索引、辅助索引、覆盖索引、联合索引的使用

聚集索引就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据。

WbX7342188的博客 2507

Mysql主键索引,普通索引索引,唯一索引的区别

主键索引: 主键索引不可以为空 主键索引可以做外键 一张表中只能有一个主键索引 普通索引: 用来加速数据访问速度而建立的索引。多建立在经常出现在查询条件的字段和经常用于排序的字段。 被索引的数据列允许包含重复的值 唯一索引: 被索引的数据列不允许包含重复的值 以下内容转载自:https://blog.youkuaiyun.com/qq_41618510/article/details/...

dkingyaoyao的博客 7117

MySQL之索引、主键索引、唯一索引、常规索引、全文索引、索引使用场景、索引失效场景、sql优化的规则等

索引是对数据库中一列或多列的值进行排列的一种结构,使用索引可快速访问数据库表中的特定信息。高效性:利用索引可以提高数据库的查询效率。唯一性:索引可以确保所查的数据的唯一性。完整性:用户可以加速表和表之间的连接,实现表与表之间的参照完整性。特殊能力:通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。

LIJINGPO的博客 1959

【索引】数据库索引之顺序索引

聚簇索引的数据和索引存储在一个文件中, 它的叶子节点包含实际的数据记录本身,而不是指向数据记录的指针。这不同于非聚簇索引,非聚簇索引的叶子节点包含指向数据记录位置的指针。

swadian2008的博客 2893

09、MongoDB -- MongoDB 的 索引管理(命令演示:常见索引类型(常规索引、文本索引、Hash索引);常见索引选项(索引名、唯一索引、局部索引、稀疏索引);创建、删除索引)

MongoDB 的 索引管理(命令演示:常见索引类型(常规索引、文本索引、Hash索引);常见索引选项(索引名、唯一索引、局部索引、稀疏索引);创建、删除索引)

Java 领域技术分享 1372

Mysql 的联合索引、覆盖索引、索引下推、MRR、索引提示

创建一个表:my_user CREATE TABLE `my_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, `sex` varchar(2) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, `date` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB

jll126的博客 3402

MySQL~B+树索引(聚集索引与非聚集索引)、联合索引、覆盖索引、哈希索引

这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家.33 sec)CREATE FULLTEXT INDEX 索引名 ON 表名(字段名) WITH PARSER ngram;这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家[外链图片转存中…(img-7m9f9Noj-1719167756778)]

2401_85112052的博客 712
上一篇: 丛生索引
下一篇: 项目优化应该从那几个方面进行
php_younger
博客等级 码龄10年 32粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值