关于索引的整理

news/2024/6/16 19:50:43/文章来源:https://blog.csdn.net/m0_64269294/article/details/138920708

一、索引是干嘛的

        索引就是用来在数据库中加速数据库查询速度的。就和在《新华字典》中的按拼音或者按笔画查字是一样的,通过缩小查询的范围,用最短的时间搜索到满足条件的记录。


二、常见的索引类型

1.普通索引(NORMAL)

普通索引是最常见的索引类型。

ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 

2.唯一索引(UNIQUE)

唯一索引就是索引列只能是唯一的不可以重复的。

ALTER TABLE `table_name` ADD UNIQUE (`column`)

3.主键索引(PRIMARY KEY)

主键索引就是在建主键的时候自动建的索引。

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

4.复合索引 

复合索引就是可以多个索引列组合在一起,但是索引的第一列必须要在sql里,不然就会没用。

ALTER TABLE `table_name` ADD INDEX index_name ( `column1` ,`column2` ) 

5.全文索引(FULL TEXT)

全文索引就是只能是CHAR,VACHAR,TEXT类型的才能添加的索引。

ALTER TABLE `table_name` ADD FULLTEXT index_name (`column`)

三、常见的索引方法

1.B-Tree

B-Tree是一种平衡的树状数据结构,所有值(被索引的列)都是排过序的,每个叶节点到跟节点距离相等。所以B-Tree适合用来查找某一范围内的数据,而且可以直接支持数据排序(ORDER BY)。

2.Hash索引

哈希(hash)比树(B-Tree)更快,原因就是Hash索引的工作方式其实就像我们生活中的电话本或者地址簿。想象一下,你有一本电话本,里面记录了每个人的联系方式。为了快速找到某个人的联系方式,电话本不是按照人名首字母或者姓氏笔画排序,而是用了一种特别的方法给每个人编了一个号码(这就是哈希值)。

现在,你想找某个朋友的联系方式,你只需要查看电话本前面的索引(哈希函数),找到这个朋友对应的号码(哈希值)。然后,你直接翻到电话本中对应号码的位置,就能迅速找到这个朋友的联系方式(数据)。

所以,Hash索引就是利用一个特殊的编号方法(哈希函数),给每条数据编一个独特的号码(哈希值)。这样,当你需要找某条数据时,只需要用这个号码(哈希值)就能在固定的位置(固定大小的数组)快速找到它,而不需要一页一页地翻找。这种方法非常快捷,但缺点是,如果两个人的号码(哈希值)相同,你就需要再仔细看一下,确保找到的是你要找的那个人(解决哈希冲突)。


四、单列索引和组合索引

1.单列索引

单列索引就是指索引只包含原表的一个列。在表中的单个字段上创建索引,并且这个索引只根据这一字段进行排序和查找。单列索引没有特别的限制条件,以是普通索引,也可以是唯一索引,还可以是全文索引。

2.组合索引

组合索引就是在数据库中创建一个包含多个列的索引,这些列共同组成了索引键。然后利用多个列的值来排序和查找数据。组合索引能够提高多列查询的性能,单列索引在多列查询就不是很适用了,而且组合索引支持对多个列进行过滤条件,从而提高数据检索速度。组合索引将多个字段值按一定顺序进行排列,并将其作为一个整体存储在B+树结构中,这样能有助于加快复杂查询的速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1046371.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDR 视频相关标准-HDR vivid (一)

一、HDR vivid 概况 高动态范围(High-DynamicRange,HDR)作为超高清音视频产业的关键技术之一,比传统的标准动态范围(StandardDynamicRange,SDR)拥有更广的色彩容积和更高的动态范围,…

农业信息|基于SSM+vue的农业信息管理系统的设计与实现(源码+数据库+文档)

农业信息管理系统 目录 基于SSM+vue的农业信息管理系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3种植户功能模块 4用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 …

【华为】BFD与静态路由和RIP联用

【华为】BFD与静态路由和RIP联用 实验需求配置AR1AR2AR3AR4效果抓包查看 实验需求 如上图组网所示,在R1上配置到达R4的Loopback0。 4.4.4.4/32网段的浮动静态路由,正常情况下通过R3访问R4。 当R3故障时,自动选路通过R2访问R4的Loopback0;在R…

免费,Python蓝桥杯等级考试真题--第6级(含答案解析和代码)

Python蓝桥杯等级考试真题–第6级 一、 选择题 答案&#xff1a;D 解析&#xff1a;4411*4&#xff0c;超出范围&#xff0c;故答案为D。 答案&#xff1a;B 解析&#xff1a;5<8<10&#xff0c;故答案为B。 答案&#xff1a;A 解析&#xff1a;先比较a&#xff0c;然后…

caffe在ARM鲲鹏920-openEuler2309上的环境搭建

caffe 配置环境 caffe cpu-only openblas protobuf 编译caffe需要3.6~3.10版本&#xff0c;否则会报错 dnf install只能安装3.19版本 需要从源码编译&#xff0c;这里选择了3.9版本 protobuf的github仓 从源码编译安装 caffe-gpu mode caffe的gpu模式需要用到cuda make…

表面简单实则暗藏玄机的面试题:Java数组适合做队列吗?

Java数组本身是一种线性数据结构&#xff0c;它可以用来存储一系列固定大小的元素。尽管数组可以用于实现队列的一些基本操作&#xff0c;比如入队&#xff08;enqueue&#xff09;和出队&#xff08;dequeue&#xff09;&#xff0c;但由于其固定的大小&#xff0c;它并不适合…

什么是安全左移如何实现安全左移

文章目录 一、传统软件开发面临的安全挑战二、什么是安全左移四、安全左移与安全开发生命周期&#xff08;SDL&#xff09;三、安全左移对开发的挑战五、从DevOps到DevSecOps六、SDL与DevSecOps 一、传统软件开发面临的安全挑战 传统软件开发面临的安全挑战主要包括以下几个方…

线缆产线中测径仪的安装位置和选型

关键字:激光测径仪,测径仪安装位置,测径仪选型,测径仪的种类,测径仪测头,线缆产线安装位置, 激光测径仪的安装位置和选型&#xff0c;确实需要根据具体的使用环境和需求来决定。 首先&#xff0c;关于安装位置&#xff0c;激光测径仪可以安装在冷却水槽之前或之后。 安装在…

防火墙技术基础篇:解析防火墙的网络隔离机制

防火墙技术基础篇&#xff1a;解析防火墙的网络隔离机制 网络安全在现代社会中扮演着重要的角色&#xff0c;保护网络系统、用户和数据免受未经授权的访问、破坏和窃取。个人、企业和国家都需要加强网络安全意识&#xff0c;采取有效措施保护自身的网络安全。随着网络攻击手段…

FSC认证是什么?森林认证的好处是什么?

FSC认证&#xff08;Forest Stewardship Council&#xff0c;森林管理委员会认证&#xff09;是一种运用市场机制来促进森林可持续经营&#xff0c;实现生态、社会和经济目标的工具。以下是关于FSC认证的详细介绍&#xff1a; 一、FSC认证包括两个方面&#xff1a; 森林经营认…

单向无头链表实现

目录 1. 为什么要有链表&#xff1f; 2. 链表的种类 3. 具体功能实现 &#xff08;1&#xff09;节点结构体定义 &#xff08;2&#xff09;申请节点 &#xff08;3&#xff09;尾插 &#xff08;4&#xff09;尾删 &#xff08;5&#xff09;头插 &#xff08;6&#…

2024042701-disjoint-set

并查集 Disjoint-Set 一、前言 并查集的历史 1964年&#xff0c; Bernard A. Galler 和 Michael J. Fischer 首次描述了不相交的并查集&#xff0c;1975 年&#xff0c;Robert Tarjan 是第一个证明O(ma(n))&#xff08;逆阿克曼函数&#xff09;算法时间复杂度的上限&#x…

免费,scratch蓝桥杯等级考试真题--第18级(含答案解析和代码)

scratch蓝桥杯等级考试真题–第18级 一、 选择题 答案&#xff1a;C 解析&#xff1a;角色隐藏后&#xff0c;图章效果还是正常显示的&#xff0c;所以C选项错误&#xff0c;故答案为C。 答案&#xff1a;D 解析&#xff1a;根据运算可知&#xff0c;2045,3065,408*5&#xff…

生成式AI蔚然成风 店匠科技引领跨境电商新范式

大家知道吗&#xff0c;曾经火遍全网的被喻为中老年服饰一姐的梁晓晴&#xff0c;其实是一位90后。在一个综艺节目中&#xff0c;她在30秒之内变换了116个Pose&#xff0c;让不少观众惊叹不已。对于一个电商平台来说&#xff0c;模特照片的好坏可能直接影响到产品的销量。实际上…

使用Python生成一束玫瑰花

520到了&#xff0c;没时间买花&#xff1f;我们来生成一个电子的。 Python不仅是一种强大的编程语言&#xff0c;用于开发应用程序和分析数据&#xff0c;它也可以用来创造美丽的艺术作品。在这篇博客中&#xff0c;我们将探索如何使用Python生成一束玫瑰花的图像。 准备工作…

深度学习之基于Django+Tensorflow卷积神经网络实时口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球疫情的持续&#xff0c;佩戴口罩成为了公众日常生活中不可或缺的一部分。特别是在人员密集的…

SDL系列(三)—— SDL2.0 扩展库:SDL_image与SDL_mixer

SDL_image SDL 默认支持的&#xff0c;只能打开 BMP 格式的图片 。 然而我们常见的是 Png jpg 格式的图片&#xff0c;于是我们这节完成 SDL 借用 自带的三方库 &#xff0c;来 完成加载渲染 png 等其他图片格式。 SDL_image 简介 使用 SDL_image &#xff0c;您…

vmware 17pro17.5 bug 严重,建议升级17.52

近日vmware发布17.52 更新&#xff0c;修复了一个重大BUG. 也就是莫名其妙的CPU跟GPU占用问题。 我的系统是WIN11 跟VMWARE17.5..近日莫名其妙的发现即使什么都没运行&#xff0c;GPU占用也高达20%。开始以为中毒了被拿去挖矿了&#xff0c;后面看到VMWARE的这个更新&#xf…

数学建模——建立数学模型(1)

目录 前言 建立数学模型 从现实对象到数学模型 原型和模型 模型分类 直观模型 物理模型 思维模型 符号模型 数学模型&#xff08;重点&#xff09; 数学建模的重要意义 分析与设计 预报与决策 控制与优化 规划与管理 数学建模的基本方法和步骤 数学建模的基本…

杰理-彩屏仓-本地音乐暂停状态下无法切换上下曲问题

杰理-彩屏仓-本地音乐暂停状态下无法切换上下曲问题 if(usr_get_connect_status(CONNECT_C_EDR)){ui_pic_show_image_by_id(MUSIC_NEXT_PIC,0);ui_pic_show_image_by_id(MUSIC_PREV_PIC,0);if (app_get_curr_task() ! APP_MUSIC_TASK) {app_task_switch_to(APP_MUSIC_TASK);}if…