MySQL 索引笔记

SQL SERVER INDEX 总结 使用聚集索引的查询效率要比非聚集索引的效率要高,但是如果需要频繁去改变聚集索引的值,写入性能并不高,因为需要移动对应数据的物理位置。非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。在SQL Server中还有include的用法,可以把非聚集索引里包含的列包含进来,而不一定需要建立复合索引。 阅读详情

索引

实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

索引分类

单列索引

一个索引只包含单个列(一张表可以包含多个单列索引,但这不是组合索引)。

组合索引

一个索引包含多个列。

索引的优缺点

优点

可以大大提高MySQL的检索速度

缺点

会降低更新表的速度。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

普通索引

创建索引

CREATE INDEX indexName ON table_name (column_name)(若是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定length。

修改表结构(添加索引)

ALTER table tableName ADD INDEX indexName(columnName)

创建表的时候直接指定

	CREATE TABLE mytable(
	ID INT NOT NULL,
	username VARCHAR(16) NOT NULL,
	INDEX [indexName] (username(length))
	);

删除索引的语法

DROP INDEX [indexName] ON mytable;

唯一索引

与前面的普通索引类似,不同的是:索引列的值必须唯一,但允许有空值。
如果是组合索引,则列值的组合必须唯一。

创建索引

CREATE UNIQUE INDEX indexName ON mytable(username(length))

修改表结构

ALTER table mytable ADD UNIQUE [indexName] (username(length))

创建表的时候直接指定

	CREATE TABLE mytable(  
	ID INT NOT NULL,   
	username VARCHAR(16) NOT NULL,  
	UNIQUE [indexName] (username(length))  
	);  

参考网站:https://www.runoob.com/mysql/mysql-index.html

组合索引、聚簇索引、覆盖索引的区别 组合索引是对多个列联合建立的一个索引。这是一个对两列的联合索引。聚簇索引是指表的数据行实际存储在索引的叶子节点中。在 MySQL 的 InnoDB 引擎中,主键就是聚簇索引。覆盖索引是指一个查询所需要的所有列都可以从一个索引中直接获取到,不需要回表查询主键。特性组合索引聚簇索引覆盖索引定义多个列组成一个索引数据按主键顺序存储查询列全部包含在索引中是否存数据不存原始行数据,只存索引列叶子节点存放整行数据索引中已包含查询所需所有列是否唯一可唯一也可非唯一通常是主键(唯一) 阅读详情

相关推荐

mysql索引笔记

这里想整理一下性能优化中用到的东西,先整理一下优化mysql索引中所查阅到的资料吧。

qq_43654518的博客 824

MySQL— 索引

目录 一、索引 二、索引类型 三、索引种类 四、操作索引 五、创建索引的时机 六、命中索引 七、其它注意事项 八、LIMIT分页 九、执行计划 十、慢查询日志 一、索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MyS...

weixin_30672019的博客 5306

MySQL进阶:深入索引 - 组合索引

组合索引(复合索引)是在多个列上创建的索引。它允许多个列作为一个整体来排序和索引,从而提高查询性能。组合索引可以是主键索引,也可以是二级索引。通过合理设置和管理MySQL的组合索引,可以有效提升系统的性能和稳定性,减少磁盘I/O和内存消耗。希望本文能帮助你更好地理解和利用组合索引,让你在数据库管理的道路上更进一步。🌟如果你有任何疑问或想要分享的经验,欢迎留言交流!💬通过上述内容,我们不仅介绍了MySQL组合索引的基本概念和工作原理,还详细说明了具体的应用场景和优化技巧。

墨夶的博客 1530

索引覆盖与回表

懂的越多,不懂的越多 上回书说到:什么情况下,索引下推没办法提高sql查询效率? 表 info 主键 id 名称 name 值 value 别名 realname 对于info表,我们现在有(name,value)联合索引

AF_0228的博客 6173

单目标跟踪算法及其复现过程---SiamFC(一)

在test.py文件中,就是利用训练出来的模型进行测试,需要更改预训练模型的路径,测试集的路径,以OTB100为例,最后输出的是对每一帧目标位置的坐标点。代码如下:首先需要下载got10k官方库,只需要在终端输入(注意:在终端安装各种库的时候不能使用网络代理),在环境已经配置到的情况下,只需要该其中的路径和就可以运行。这个系列博客仅为了记录各目标跟踪算法的复现(大多为跑通大佬们实现的代码),包括其中出现的很多问题和错误,学到的新知识等等。解决,而且只使用在线的方法,限制了他们可以学习的模型的丰富性。

weixin_58244117的博客 4762

基于h5端的视频录制和回溯功能的实现

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

发果叁 3191

[MySQL学习笔记] 索引

MySQL索引是提高查询效率的关键数据结构,主要采用优化的B+Tree结构,相比二叉树和B-Tree具有层次浅、检索快、支持范围查询等优势。索引分为聚集索引和二级索引,但使用不当会导致失效,如违反最左前缀法则、范围查询、运算操作等情况。通过慢查询日志、explain等工具可分析SQL性能。索引使用原则包括:对高频查询表建索引、选择高区分度字段、控制索引数量、优先使用联合索引等。合理使用索引能显著提升查询效率,但需注意索引会占用存储空间并影响写操作性能。

qq_58547683的博客 1073

STM32入门教程:自动门控制

通过这个简单的示例,我们展示了如何使用STM32微控制器来实现一个简单的自动门控制系统。如果有物体靠近门口,我们会改变doorState的值,并使用controlServoMotor函数来控制舵机电机的转动。具体的引脚连接可以根据您的具体硬件来定,例如将红外传感器的输出引脚连接到GPIOA_PIN0引脚。同样,具体的引脚连接可以根据您的具体硬件来定,例如将舵机的控制引脚连接到GPIOA_PIN1引脚。首先,我们需要包含必要的库文件和引用。然后,我们需要定义一些函数来处理红外传感器的输入和舵机电机的输出。

m0_75244442的博客 578

【MySQL学习笔记】关于索引

索引下推是MySQL5.6的优化机制,默认是开启的,如果条件判断字段,在二级索引B+树里,就会下推到InnoDB存储引擎层来过滤,过滤完的记录,才会回表,相比没有索引下推的时候,可以减少回表次数。InnoDB会使用主键索引在B+树维护索引和数据文件,创建的联合索引也会生成一个索引树,同样都是B+树的结构,只不过它的data部分存储的是联合索引所在行的值。所以说,联合索引的优势在于支持索引覆盖查询,避免回表操作,并且对索引列的查询可直接利用索引的有序性完成排序,无需额外的外部排序,显著提升查询性能。

席万里的博客 1014

Unreal5从入门到精通之Landscape地形系统

虚幻引擎 5 (UE5) 能够利用其强大的地形编辑工具套件创建大规模的地形世界。使用地形工具可以创建身临其境的户外地形,这些地形经过优化,可在多种不同设备上保持可播放的帧速率。

TxNet 4143

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 48

MySQL学习笔记-04(索引)

索引是一种用于快速查询和检索数据的数据结构(有序);使用索引后可以不用读取全表来定位数据,而是先通过索引找到对应数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度;用户看不到索引,只能用来加速检索或查询。

weixin_41016739的博客 1791

【软件定义汽车】-【架构篇】-全面讲解整车电子电气架构演进

前言: 前段时间,陆陆续续写了一些电子电气架构相关的文章。这里打算再写最后一篇作为收尾,为整个系列画上句号,把坑填上,这个话题就算过去了。后续一段时间,尽量把之前文章中挖的“坑”填一下。行文逻辑将借鉴5W2H进行。 另外,本文作为一篇整合性的文章,为保证逻辑的完整性,主要是将大量过去自己文章中的内容进行梳理整合,也存在很多行业内专家的公开文章的内容,请见谅。 WHAT1:什么是汽车电子电气架构? 电子电气架构:EEA,Electrical/Electronic Architecture.

零点壹客的博客 1万+

MySQL笔记——索引

学习黑马MySQL课程,记录笔记,用于复习。

君莫笑lucky的博客 1310

ParaView :在paraview创建渲染视图

ParaView :在paraview创建渲染视图

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1306

NPC 三电平逆变器中点电位平衡算法详解

最常用:零序电压注入(简单、计算量小)最可靠:虚拟空间矢量调制(VSVPWM)及其改进形式(全范围平衡)趋势:结合模型预测控制(MPC)或智能算法(模糊、神经网络)进一步提升动态性能和鲁棒性。NPC 三电平逆变器中点电位平衡算法的 C# 实现示例(零序电压注入法 + 闭环补偿)在 NPC(Neutral Point Clamped)三电平逆变器中,中点电位平衡最常用且易于软件实现的方案是零序电压注入法。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 325

MySQL学习笔记集--索引

它类似于书籍的目录,通过索引可以快速定位到表中的特定行,而无需扫描整个表。索引是数据库中用于提高查询效率的一种数据结构。

Three_stones的博客 1090

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mysql索引 使用笔记_mysql索引笔记

MYSQL索引一、索引的优缺点优点:1.通过创建唯一索引,可以保证数据库表中每一行的唯一性。2.可以大大加快查询速度,这是创建索引的最主要原因3.在实现数据参考完整性方面,可以加速表和表之间的链接4.在使用分组和排序子句进行数据查询时,也可以显著减少查询中分组和查询的时间缺点:1.创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加。2.索引需要占磁盘空间,除了数据表占数据空间之...

weixin_28716723的博客 112

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MySQL索引笔记

MySQL索引什么是索引?有什么用?一.什么时候要添加索引二.索引的实现原理三.索引的分类 什么是索引?有什么用? 1.索引就相当于一本书的目录,通过目录可以快速的找到对应的资源 2.就是缩小了扫描的范围 ##注意:索引虽然可以提高检索效率,但不是能随意的添加,因为索引也是数据库当中的对象,也需要数据库不断维护,是有维护成本的。比如,表中的数据经常被修改这样就不适合添加索引,因为数据一旦修改,索...

qq_44847658的博客 182

MYSQL索引笔记

/* 索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度 普通索引 这是最基本的索引,它没有任何限制。 CREATE INDEX 索引名 ON 表名(列名(length)); 修改表添加索引 语法: alter table 表名 add index 索引名(列名(lenght)) 创建表时指定索引 语法: create table 表名( 列名 ...

weixin_43786878的博客 195

【MySQL学习笔记】MySQL的索引

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。索引的优点:1- 提高数据检索的效率,降低数据库的IO成本;2- 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。索引的缺点:1- 索引列也是要占用空间的。

wrjwww的博客 891

mysql笔记——索引

通过查看一个数据库中历史增删改查的频次,可以决定是否需要对其使用索引优化的策略。B树中叶子节点和非叶节点都会存储数据,导致段页式存储中一页存储的键值减少,指针也会减少,要同样保存大量数据,只能增加树的高度,导致性能降低。例如,联合索引(a,b,c)。查询需要从索引的最左列开始,并且不条约索引中的列。如果跳跃了某一列,后面的字段索引会失效。使用索引的长度,表示查询中使用的索引字段的字节数。查询实际使用的索引。显示索引列的比较条件,例如常量或某个列。表示查询中执行步骤的标识符,查询按照。查询中可能用到的索引。

weixin_51172489的博客 1001

MySQL学习笔记4【存储引擎和索引】

索引学了还是很有帮助的,让我认识到了平日里写的一些建表,查询数据的效率有多低,而在面对大量数据的时候,效率低下的表结构就会暴露出来,而这时索引的作用就会凸显出来。

Rinai的博客 1228

mysql索引 使用笔记_MySQL索引使用笔记

我们平常所说的索引,如果没有特别指明,都是指B+树结构组织的B-Tree索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。当然,除了B+树这种类型的索引之外,还有哈稀索引(hash index)等。MySQL InnoDB B-Tree索引使用Tips这里主要讨论一下InnoDB B-Tree索引的使用,不提设计,只管使用。B-Tree索引主要作...

weixin_31363913的博客 130

mysql索引 使用笔记_Mysql 索引笔记

跟索引相关的算法二分查找发二分查找法的查找过程是:将记录按顺序排列,查找时先以有序列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将查询范围缩小为左半部分;如果要找的元素值大于该中点元素,则将查询范围缩小为右半部分。以此类推,直到查到需要的值。二叉查找树二叉查找树中,左子树的键值总是小于根的键值,右子树的键值总是大于根的键值,并且每个节点最多只有两颗子树。 平衡二叉树我们一起看下平衡二叉...

weixin_42378374的博客 201

MySQL 索引学习笔记

MySQL 索引学习笔记

m0_47396773的博客 1064
上一篇: PO、VO、DTO、DO、DAO概念笔记
fromscratchx
博客等级 码龄7年 1粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值