索引 ---MySQL的总结(五)

mysql索引(五)联合索引 Mysql索引大概有五种类型: 普通索引(INDEX):最基本的索引,没有任何限制 唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。 主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。 全文索引(FULLTEXT ):可用于 MyISAM 表,mysql5.6之后也可用于innodb表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间。 联合(组合)索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原 阅读详情

索引

在mysql数据库之中,如果数据量过大,直接进行遍历会需要使用许多时间。这里使用空间换时间解决这一个问题。

目前就是从解决问题的这一个角度出发,需要增加搜索的速度,一定是要选择好用的数据结构进行搜索(遍历的速度越快,时间复杂度越低)。下面从不同的数据结构入手进行分析如应该使用的结构,数组,栈,队列,链表,堆,图就不进行考虑,因为这些的效率低下,和不适合进行搜索的过程。

不同数据结构

树

目前常用的树是有AVL树,红黑树(二叉搜索树),这些树的结构数据量过大之后就会退化成为线性便利(当数据量足够大的情况下),无论怎么进行处理都会变成这个样子。

IMG_1D6AB3865CF7-1

哈希表

IMG_D690040C45F9-1

这里使用哈希表方便查找,但是不方便进行访范围进行筛选。不知道,最后一个的东西的范围在哪里,列的大小不确定。目前的使用支持储存引擎。

IMG_BBB37DF2A530-1

B+树结构

IMG_CE18B7B0DFC9-1

IMG_54B2011A80DB-1

B+树克服了二次树的退化问题(多叉树),而且数据的位置储存在最后一行的位置,让整个的B+树的数据部分不会臃肿(page块,除了最后一行都是用来储下面一次节点的位置信息,)。最后一行储存数据信息的相关内容。

目前经常使用这个方法的MySQL储存引擎。

IMG_B20EEEBAB8A6-1

不同种类的索引

MyISAM 这种用户数据与索引数据分离的索引方案,叫做非聚簇索引。(B+树的结构决定一切,数据放在最底层)。
索引有明显提高数据搜索速度的功能。
在这里插入图片描述

索引的书写

是否这里根据根主键建立索引,分成下面这两个索引,而去索引的部分的区别。

这里都是一个简单的表进行讲述

create table(
id int primary key,
 name varchar(40) 
);

这里创建了一个简单表,有用户的id与用户姓名,主键为id。

唯一键索引

一个表中,可以有多个唯一索引
查询效率高
如果在某一列建立唯一索引,必须保证这列不能有重复数据
如果一个唯一索引上指定not null,等价于主键索引(引入不为空的属性,基本上与主键的语法含义相同,但是在实际的应用之中的含义不同)

具体建立的方法如下:()

create table t1(
id int primary key,
 name varchar(40) ,
  unique(id)
);

这里的unique(id),指定id为唯一键。

create table t1(
id int primary key ,
 name varchar(40) unique
);

这里指定name为唯一键,并且同时创建唯一键。

alter table t1 add unqiue(name);

主键索引

1,一个表之中,最大有一个主键索引

2,主键索引的效率高

3,主键索引列基本上是int

4,只要有主键就会生成索引

这里的创建索引的方法与上面的主键索引基本相同,只不过是添加主键。

普通索引

一个表中可以有多个普通索引,普通索引在实际开发中用的比较多。

如果某列需要创建索引,但是该列有重复的值,那么我们就应该使用普通索引

这里运用普通索引具体过程:

1,创建索引(以普通元素,最后的数据块应该是主键的位置)

2,创建主键索引(即使没有主键,系统自己也是会默认生成一个主键,按照含义叫做与位置无关码)

搜索过程:

1,根据普通的元素索引找到主键值

2,根据主键索引找到对应元素的位置信息

创建普通索引的方法,如下

create table t1(
id int primary key,
 name varchar(40) ,
  index(name)
);
create table t1(
id int primary key,
 name varchar(40)  index
);
create index index_name/*索引的名称*/ on t1(name)

全文索引

就是整个数据库基本上都是文字(英文,也可以是中文需要换引擎)。这个可以增加搜索的速度。

create fulltext index t1 on t1(name);

这里就创建的t1表的全文索引

删除索引

这个删除普通索引

drop index index_name/**索引的名称/ on ti(colum1);

删除主键索引

alter table table_name drop primary key(column);

删除唯一索引

alter table table_name drop unique(column);

显示一个表的所有索引

show index from tabel_name;

image-20230511203905215

这里记住是from,不是on。不要与创建普通索引的结构(create index index_name on table_name)混乱起来看待!

玩转Mysql 五(MySQL索引) 路虽远行则将至,事虽难做则必成! 滴水穿石,聚沙成塔! 感谢优快云各位大佬的经典博文,在迷茫时能够拨云见日,指点迷津,让我继续一路前行! 如有侵权,请留言,我及时删除! 阅读详情

相关推荐

Python数据清洗实战:用RapidFuzz搞定模糊匹配(附完整代码示例)

本文详细介绍了在Python数据清洗中,如何利用RapidFuzz库高效解决字符模糊匹配难题。通过实战代码示例,演示了从处理拼写错误、格式不一致的脏数据,到构建实体对齐与记录去重的完整清洗管道,帮助开发者提升数据质量与处理效率。

pear55的博客 532

五、MySQL索引

五、索引 1、索引类型 (1)、主键索引(PRIMARY KEY):加速查询 + 列值唯一(值不允许为Null)+ 表中该索引只能有一个 (2)、唯一索引(UNIQUE):加速查询 + 列值唯一(值允许为Null) (3)、普通索引(NORMAL):仅加速查询 (4)、组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并 (5)、全文索引(FULLTEXT):对文本的内容进行分词,进行搜索 ...

L_D_Y_K的博客 694

小新学习K8s第一天之K8s基础概念

kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。kubernetes服务,支持和工具随处可见。作用:用于自动部署,扩展和管理“容器化应用程序”的开源系统。可以理解成k8s是负责自动化运维管理多个容器化程序(比如docker)的集群,是一个生态及其丰富的容器编排框架工具。

pangdongqiqi的博客 1228

MySQL五:索引

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如果没有索引,在查询时采用全表扫描,性能极低;备注:上述二叉树索引结构的只是一个示意图,并不是真实的索引结构。

XiaoyuEr_6688的博客 948

用野火FPGA开发板(EP4CE10)手把手教你实现一个高精度频率计(附完整Verilog代码)

本文详细介绍了基于野火FPGA开发板(EP4CE10)实现高精度频率计的全过程,涵盖等精度测量法的核心原理、Verilog代码实现及优化技巧。通过实际案例演示,帮助开发者掌握1Hz-50MHz范围、精度达0.1%的频率计设计方法,并提供完整的工程代码和实测数据。

weixin_29261711的博客 440

ROST_CM6软件之词频分析、社会网络和语义网络分析、情感分析

简介 ROST CM 6是武汉大学沈阳教授研发编码的国内目前唯一的以辅助人文社会科学研究的大型免费社会计算平台。该软件可以实现微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析等一系列文本分析。 社会网络和语义网络分析(S) 数据 注意,保存时编码要为ANSI 所以这里需要转换一下 准备自定义表与停词表 例如 同时,点击快速分析后,将会弹出网络图 对网络图进行设置 对布局进行设置 对节点、边进行设置 最终效果图 修改 情感分析

积一时之步,臻千里之遥程 9万+

五、MySQL 索引

索引作为一种数据结构,其用途是用于提升检索数据的效率。 1、MySQL 索引的分类 - 普通索引(INDEX):索引列值可重复 - 唯一索引(UNIQUE):索引列值必须唯一,可以为NULL - 主键索引(PRIMARY KEY):索引列值必须唯一,不能为NULL,一个表只能有一个主键索引 - 全文索引(FULL TEXT):给每个字段创建索引 2、MySQL 不同类型索引用途和区别 - 普通索引常用于过滤数据。例如,以商品种类作为索引,检索种类为“手机”的商品。 - 唯一索引主要用于标...

liuqi66的博客 136

运用AD进行stm32最小系统PCB图的绘制

运用AD进行stm32最小系统PCB图的绘制一、PCB图的绘制(1)布局(2)布线(3)覆铜(4)电气规则检查二、给PCB添加logo三、生成garber文件总结 一、PCB图的绘制 (1)布局 1.画好原理图后,新建一个PCB项目 2.在Design中选择第二项,导入器件 3.先点击右下角第一项,再点第二项导入器件 导入成功 4.导入后效果 选择紫红色方框,按电脑上的delete键把它删掉 5.在Tools选择Outside Board,自动排布器件 排布后效果如图 6.画线,确定板子范围

lucario1的博客 2150

五. MySQL 索引

目录一. 基础解释使用索引带来的好处与坏处 一. 基础解释 什么是索引:索引(Index)是帮助mysql提高查询数据效率的一种数据结构,可以简单理解为"对数据根据某种规则进行排序,根据这个有序的规则更快的查找到指定数据的数据结构"(数据之外,数据库系统维护着满足特定查找算法的数据结构,这种数据结构一引用的方式执行数据例如B+树,类比字典) 索引对SQL执行的影响: 在执行一条sql时,索引会影响到"where"条件约束,是否用到索引,还会影响到"order by"排序两大功能(总结,索引拥有排序查找两大

qq_29799655的博客 535

Win10网络图标消失,网络图标变成灰色,打开网络设置闪退等问题解决

介绍 主要解决如下问题 网络图标消失 常用方法配置中出现的网络图标变成灰色没有办法打开 打开网络和Internet闪退 错误提示`网络发现已关闭。网络计算机和设备不可见。请启动网络和共享中心的网络发现。 连不上网,诊断结果为 依赖服务或组无法启动 这个问题大概率通过重装系统不能解决,请大家谨慎测试之后最后选择重装这个路线。 方法1:这一步一定要做(卸载三方软件) 把360安全卫士,软件管家这些东西都卸载掉。 我的问题一开始就是这个软件引起的,可能他检测到我还给台式机配了无线网卡,然后就把有线网络的一些

呆呆象呆呆的博客 3万+

Codex 接入国产大模型指南:客户端与 CLI 双端实战

CC Switch是目前最流行的 Codex / Claude Code 模型切换工具,内置了协议转换功能,支持几乎所有主流国产模型。核心原理Codex → 本地 8317 端口(CC Switch)→ 协议转换 → 国产模型 API整个过程对 Codex 完全透明,Codex 以为自己在跟标准的 Responses API 对话。用户类型推荐方案理由新手 / 不想折腾配置简单,免费额度够用追求稳定体验通义千问(原生接入)官方兼容,功能最完整企业用户自建 AI 网关可控性强,支持多用户管理预算有限。

篮球界最会写bug的人;程序猿中打球最菜的人。 578

MySQL复习资料(五)——MySQL-索引

目录索引分类创建索引索引的优缺点给userName添加一个名字为【userName_index】的普通索引 索引效率测试:mysql索引_效率测试(包含测试sql脚本300万条数据),可用作教学案例。_红目香薰-优快云博客内容是针对索引进行完整对照实验的文章,很清晰的理解是否添加索引的查询效率区别。 未添加索引查询效果 已添加索引查询效果...

红目香薰 1330

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2203

【MySQL】五、索引

一、索引创建的几大原则 列的离散型 离散型的计算公式:count(distinct column_name):count(*),就是用去重后的列值个数比个数。值在 (0,1] 范围内。离散型越高,选择型越好。 如下表中各个字段,明显能看出Id的选择性比gender更高。 mysql> select * from user; +----+--------------+------+--------+ | id | name | age | gender | +----+------

qwertyuiopasdfghjklzxcvbnm 313

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

五、MySQL 索引优化一

一、MySQL 索引优化 二、全值匹配 三、最左前缀法则 四、不在索引列上做任何操作 五、存储引擎 不能使用 索引范围查询 右边的索引 六、尽量使用覆盖索引 七、不用不等于 八、不用is null、is not null 九、不用 like 以通配符开头 十、字符串 没加 引号 十一、不用 OR 或 IN 十二、范围查询优化

梦想成真 614

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MySQL-索引详解(五)

本章讲解MySQL系列最后一章了,索引( index )是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

一起努力共同进步,为了未来一起奋斗吧! 1196

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MySQL(五) MySQL中的索引详讲

组合索引就是遵从了最左前缀,利用索引中最左边的列集来匹配行,这样的列集称为最左前缀,不明白没关系,举几个例子就明白了,例如,这里由id、name和age3个字段构成的索引,索引行中就按id/name/age的顺序存放,索引可以索引下面字段组合(id,name,age)、(id,name)或者(id)。注意,学习这张,很重要的一点就是必须先得知道索引是什么,索引是干嘛的,有什么作用,为什么要索引等等,如果不知道,就重复往上面看看写的文字,好好理解一下。可以看到,通过id查询时,会使用唯一索引。

dawsdwd的博客 1773

mysql 键 索引_五、MySQL索引和键

MySQL索引和键(不同的索引有不同功能 ,不同的约束方式,不同的使用规则)优点:对一张表来说,索引就像一本书的目录,能够加快查询速度缺点:占用物理存储空间 (索引信息存储在表对应的文件里)会降低插入、更新表记录的速度(insert delete update)1.索引的类型普通索引:index唯一索引:unique全文索引:fulltext2.各个索引的说明(1).index 普通索引一...

weixin_42525289的博客 170

五:MySQL索引与算法

五:索引与算法概述数据结构和算法二分查找法二叉查找树和平衡二叉树B+树B+树的插入操作第一种情况:第二种情况第三种情况B+树的删除操作第一种情况:第二种情况:B+树索引聚集索引 概述 InnoDB存储引擎支持以下几种常见的索引: B+ 树索引,全文索引, 哈希索引. 其中 哈希索引是自适应的,InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引。不能人为干预是否在一张表中生成哈希索引。B+树索引就是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引.B+树索引的构造类似于二叉树,

echohuangshihuxue的博客 739

【MySQL数据库】五、索引

一、索引基本概念 二、聚集索引和非聚集索引 三、索引的分类 四、索引的操作 (一)创建索引 (二)查看索引 (三)删除索引 五、索引的优缺点 六、索引的优化和注意事项

qq_43411555的博客 470

如何选择普通索引和唯一索引《死磕MySQL系列 五》

一网打尽MySQL的各种锁系列文章前言 系列文章 一、原来一条select语句在MySQL是这样执行的《死磕MySQL系列 一》 二、一生挚友redo log、binlog《死磕MySQL系列 二》 三、MySQL强人“锁”难《死磕MySQL系列 三》 前言 看过前几期文章的伙伴会发现并没有聊过关于索引和事务的知识点,这两个大点再之前的文章中已经写过了。 这里给大家一个传送门点击直接查看哈! 揭开MySQL索引神秘面纱 上来就问MySQL事务,瑟瑟发抖… MVCC:听说有人好奇我的底层实现 幻读:听说有人认

咔咔博客 1391

五、MySQL索引和事务

五、MySQL索引和事务 1. 索引 概念: 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。 作用: 对于提高数据库的性能有很大的帮助。 使用: 查看索引 show index from 表名; 创建索引 create index 索引名 on 表名(字段名); 删除索...

ilovestudy_的博客 238

五、MYSQL索引.md

1、索引的优点 大大减少服务器需要扫描的数据量 帮助服务器避免排序和临时表 将随机IO变成顺序IO 2、索引的用处 快速查找匹配WHERE的行 从consideration中消除行,如果可以在多个索引只见那进行选择,mysql通常会使用找到最少行的索引 如果表具有多列索引,则优化器可以使用索引的任何最左前缀来查找行 当有表链接的时候,从其他表检索行数据 查找特定索引列的min或max值 如...

吴大侠的博客 462

【MySQL高级】(五)索引失效、索引优化

1. 前言   索引的建立是为了让我们更加高效快速的查询出结果,但是,要想充分利用起索引,我们首先要解决的最大问题就是要避免索引失效,下面我们来一起通过实例来探讨造成索引失效的情况,并通过优化SQL查询语句来避免索引失效。 ➤ 准备工作:、 创建数据表SQL CREATE TABLE `staffs` ( `id` int(11) NOT NULL AUTO_INCREMENT COM...

JinXYan的博客 870

【MySQL】MySQL进阶之路(五)MySQL索引详解

MySQL索引详解

weixin_45551345的博客 816

MySQL学习(五)——索引

MySQL的索引详解,包括索引的结构介绍、索引分类、索引的语法、MySQL的慢查询语句提取,最左前缀问题和索引的使用与设计

ifhuke的博客 435
上一篇: 复合查询--- MySQL总结(四)
下一篇: 事务 ---MySQL的总结(六)
assibe
博客等级 码龄5年 1640粉丝 84原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值