今日分享开始啦,请大家多多指教~
mysql索引结构:
mysql索引使用B+tree,为什么使用B+tree呢,首先,使用索引是为了加快查找的速度,B+tree的查找时间复杂度为log(n).那为什么不用o(1)的hashMap呢。mysql是有使用hashMap结构的hash索引的,但大部分情况下,我们使用的索引并不是hash索引,主要是hash索引这种结果在处理 !=, > ,< 这种范围查询时,需要全表扫描,时间复杂度为o(n)。
2024年10月12日
今日分享开始啦,请大家多多指教~
mysql索引使用B+tree,为什么使用B+tree呢,首先,使用索引是为了加快查找的速度,B+tree的查找时间复杂度为log(n).那为什么不用o(1)的hashMap呢。mysql是有使用hashMap结构的hash索引的,但大部分情况下,我们使用的索引并不是hash索引,主要是hash索引这种结果在处理 !=, > ,< 这种范围查询时,需要全表扫描,时间复杂度为o(n)。
2024年10月12日
我想大家应该多多少少做过一些慢sql的优化吧,通常会是公司的leader或者是运维人员扔给你一些执行速度慢的sql语句,然后让你去优化。当遇到慢sql的时候,大家的第一直觉是不是查看索引有没有创建,索引是不是有命中等等。那这个索引到底是什么东西,为什么能提高数据的查询速度呢?那么下面就简单的介绍一下索引以及索引底层的数据结构等。
2024年10月12日
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+树索引能够快速的定位要要查找的数据所在的数据页,然后将页读入内存,在通过页字典槽快速寻找到数据行。