认识索引
认识索引是什么东西非常关键,一个非常恰当的比喻就是书的目录页
与书的正文内容
之间的关系,为了方便查找书中的内容,通过对内容建立索引
形成目录
。因此,首先你要明白的一点就是,索引
它也是一个文件,它是要占据物理空间的。
比如对于MyISAM存储引擎来说:
2024年10月12日
认识索引
认识索引是什么东西非常关键,一个非常恰当的比喻就是书的目录页
与书的正文内容
之间的关系,为了方便查找书中的内容,通过对内容建立索引
形成目录
。因此,首先你要明白的一点就是,索引
它也是一个文件,它是要占据物理空间的。
比如对于MyISAM存储引擎来说:
2024年10月12日
github.com/zhangpanqin/MFlyYou 收集技术文章及我的系列文章,欢迎 Star。
数据库中的索引是为了提高查询效率的,将像字典的目录一样。
2024年10月12日
1.什么是索引(内容来源网络)
索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。
表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。
大多数MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)在B树中存储
2.我们着重聊一下B+树索引,如下图
图中涉及两种类型的索引:聚簇索引、非聚簇索引
2024年10月12日
关系型数据库是一种采用关系模型存储数据的数据库系统。在关系型数据库中,数据被组织成一个或多个表格(也称为关系),每个表格包含多行记录,每行记录代表一组相关数据。每个表格都有一个定义该表格中数据的结构的模式,即表格的列和每个列的数据类型。关系型数据库通过使用 SQL(结构化查询语言)作为其主要的数据操作语言来查询和操作数据。
2024年10月12日
来源:https://mp.weixin.qq.com/s/WvFqnNuaSPOVrTckqVh9og
“索引”是为了能够更快地查询数据。比如一本书的目录,就是这本书的内容的索引,读者可以通过在目录中快速查找自己想要的内容,然后根据页码去找到具体的章节。
数据库也是一样,如果查询语句使用到了索引,会先去索引里面查询,取得数据所在行的物理地址,进而访问数据。
2024年10月12日
InnoDB存储引擎支持以下几种常见的索引,如B+树索引、哈希索引、全文索引。哈希索引是自适应的,InnoDB会根据表的使用情况自动为表生成哈希索引。
B+树索引是目前关系型数据库中最常用、最有效的索引之一,其索引结构是一种多路平衡树结构(与二叉树类似,B代表的不是Binary,而是Balance)。通过B+树索引能够快速的定位要要查找的数据所在的数据页,然后将页读入内存,在通过页字典槽快速寻找到数据行。
2024年10月12日
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。
有100万条数据,需要从中筛选查询10条数据,尽然用了3秒才出来,于是乎,你会想到添加个索引,然后查询速度一下从秒级别变成了毫秒级别,你知道中间发生了什么吗?
2024年10月12日
所有Mysql列类型都可以被索引,对相关列使用索引时提高select操作性能的最佳途径。根据存储引擎可以定义每张表的最大索引数和最大数和最大索引长度,每种存储引擎(如MyISAM、InnoDB、BDB、MEMORY等)对每个表至少支持16索引,总索引长度至少为256。大多数存储引擎有更高的限制。
MyISAM和InnoDB存储引擎的表默认创建的都是BTREE索引。Mysql支持前缀索引,即对索引字段的前N个字符创建索引。前缀索引的长度跟存储引擎相关,对于MyISAM存储引擎的表,索引的前缀长度可以达到1000字节长,而对于InnoDB存储引擎的表,索引的前缀长度最多是767字节。前缀的限制应以字节为单位进行测量,而create table语句中的前缀长度解释为字符数。在为使用多字节字符集的列指定前缀长度时需要多加考虑。
2024年10月12日
主键索引:表的主键列会默认添加索引,索引中保存了该行记录的所有数据
唯一索引(upique):该列的所有值必须唯一
普通索引(normal):普通列的一种索引
聚合索引:是普通索引中的一种,但是它是由多个列组成的索引复制代码