当前位置: 首页 > news >正文

哈尔滨网站建设学校关键词排名优化方法

哈尔滨网站建设学校,关键词排名优化方法,杭州论坛网,重庆医院网站建设提示:内容是读《MySQL技术内幕:InnoDB存储引擎》,笔记摘要 文章目录 二叉查找树平衡二叉树(AVL) B树(BTree)B树(BTree)InnoDB B树索引索引结构(InnoDB B树)B树存放的数据量 二叉查找树 在二叉查找树中,左子…

提示:内容是读《MySQL技术内幕:InnoDB存储引擎》,笔记摘要

文章目录

  • 二叉查找树
    • 平衡二叉树(AVL)
  • B树(BTree)
  • B+树(B+Tree)
  • InnoDB B+树索引
  • 索引结构(InnoDB B+树)
  • B+树存放的数据量


二叉查找树

在这里插入图片描述
在二叉查找树中,左子树的键值总是小于根的键值,右子树的键值总是大于根的键值,因此可以通过中序遍历得到键值的排序输出。对上图进行中序遍历(左-根-右)后输出:2、3、5、6、7、8。

平衡二叉树(AVL)

为解决二叉查找树数据左右分配不平衡,出数据大面积分布存储在根节点左侧(或右侧),查询效率低的问题,故引入平衡二叉查找树-AVL树。
平衡二叉树的定义
首先符合二叉查找树的定义; 其次必须满足任何节点的两棵子树的高度最大差为1。
平衡二叉树的缺点
平衡二叉树的查询速度的确快,但是维护一棵平衡二叉树的存储成本有很大,通常需要1次或多次左旋或右旋来得到经过插入或更新操作后二叉树的平衡性。
例如: 平衡二叉树【 1、2、4、5、9】,增加新数据节点3。
在这里插入图片描述

B树(BTree)

概念:
B树和平衡二叉树不同,B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引里大量使用者B-Tree和B+Tree的数据结构。
特点:
(1)排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则;
(2)子节点数:非叶节点的子节点数范围(1,M] , 且M>=2,空树除外;
(注:M阶代表一个树节点最多有多少个查找路径,当M=3则是3叉树);
(3)关键字数Key:枝节点的关键字Key数量数据范围[ceil(M/2)-1,M-1]
(注:ceil()是个朝正无穷方向取整的函数 如3阶B树时ceil(1.5)结果为2,关键字数范围[1,2]);
(4)所有叶子节点均在同一层、叶子节点包含关键字和数据;
(5)拥有n-1个key值非叶子节点必须有n个孩子节点;
(6)一个节点的所有key值必须是升序排序的;
在这里插入图片描述BTree是单个节点可以存储多个键值和数据的多路平衡查找树
在存储海量的数据,因为平衡二叉树的每个节点只存储一个键值和数据,节点将会非常多且高度也其高,当查找数据时会进行很多次磁盘IO,查找的效率将会极低,为了解决平衡二叉树的这个弊端,需要一种单个节点可以存储多个键值和数据的平衡树(BTree)

B+树(B+Tree)

概念
B+树是B树的一个进化,相对于B树来说B+树更充分的利用了节点的空间,让查询速度更加稳定,其速度完全接近于二分法查找。结构如下:
在这里插入图片描述
特点:
(1)非叶子节点只存储索引(键值 + 指针 ),不存储data
(2)叶子节点存储键值和所有data,记录节点都是按键值的大小顺序存放在同一层的叶子节点,并通过指针进行链接

InnoDB B+树索引

    在MySQL数据库中,索引是在存储引擎层实现的,这意味着每个引擎的B+树索引的实现方式可能是不同的,取决于存储引擎实现的本身。
    在InnoDB存储引擎中,数据文件本身就是按照B+树方式存放数据的。其中,B+树的键值为主键,若在建立时没有显式地指定主键,则InnoDB存储引擎会自动创建一个6字节的列作为主键(rowId)。因此在InnoDB存储引擎中,可以将B+树索引分为聚集索引和辅助索引(非聚集索引)。无论是何种索引,每个页的大小都为16KB,且不能更改。
聚集索引和辅助索引的区别
聚集索引与辅助索引,底层数据结构都是B+树,区别仅在于所存放数据的内容:
聚集索引是根据主键创建的一棵B+树,叶子节点存放表中的所有记录
辅助索引(普通索引)是根据索引键创建的一棵B+树,叶子节点仅存放索引键值,以及该索引键值指向的主键
提示:如果通过辅助索引来查找数据,那么当找到辅助索引的叶子节点后,很有可能还需要根据主键值查找聚集索引来得到数据,这种查找方式又被称为回表。因为辅助索引不包含行记录的所有数据,这就意味着每页可以存放更多的键值,因此其高度一般都要小于聚集索引。
在这里插入图片描述
在这里插入图片描述
回表:先通过普通索引扫描出数据所在的行(存储的是聚簇索引-主键的值,而非数据),再通过行主键值去主键(聚集)索引的叶子节点中去获取完整的数据,这样的查询等同于需要多扫描一棵索引树,这就是回表, 简单说就是基于非主键索引的查询需要多扫描一棵索引树。

如何避免回表? 可通过索引覆盖解决。在索引中包含所有需要获取的所有字段,查询结果可以直接全部拿到字段数据,不需要通过主键索引再次去获取。

索引结构(InnoDB B+树)

存储单元
磁盘:最小单元是扇区,一个扇区的大小是 512个字节
文件系统:最小单元是块,一个块的大小是 4K
InnoDB存储引擎:最小单元称之为(数据页Page),一个页的大小是16K,MySQL的InnoDB存储引擎以Data Page(数据页)作为磁盘和内存之间交互的基本单位。
B+树存储结构
mysql数据库中,table表中的表数据(记录)都是存储在页中,是以页的形式存放的,页在磁盘中不一定是连续, 且页是分布在表空间文件(.ibd文件)内,例如 user 用户表表空间文件:
在这里插入图片描述
数据页结构图在这里插入图片描述
说明:
在这里插入图片描述

B+树存放的数据量

B+树的存储总记录数 = 根节点指针数 * 单个叶子节点记录条数

假设一条的记录大小为1KB,单个叶子节点记录条数=数据页16KB/1KB = 16(条);
假设主键ID为bigint类型,长度为8字节,而指针大小为6字节,共14字节。
则一个页中可存放组合(即指针),即 1024 * 16 / 14 =1170,可以算出一棵高度为2的B+树,能存放 1170 * 16 = 1.87万,3阶的B+树能存放 1170 * 1170 * 16 = 2200万 数据记录。


文章转载自:
http://wanjiaoxygenation.gtqx.cn
http://wanjiaduet.gtqx.cn
http://wanjiatau.gtqx.cn
http://wanjiarondure.gtqx.cn
http://wanjiariometer.gtqx.cn
http://wanjiadivagation.gtqx.cn
http://wanjiapostform.gtqx.cn
http://wanjiabenorth.gtqx.cn
http://wanjiaobturation.gtqx.cn
http://wanjiahybridisation.gtqx.cn
http://wanjiadissentious.gtqx.cn
http://wanjiameroblastic.gtqx.cn
http://wanjiatrifunctional.gtqx.cn
http://wanjiareinsert.gtqx.cn
http://wanjiaabortion.gtqx.cn
http://wanjiasupracrustal.gtqx.cn
http://wanjiadudgeon.gtqx.cn
http://wanjiaspaceband.gtqx.cn
http://wanjiaenumerable.gtqx.cn
http://wanjiarazorjob.gtqx.cn
http://wanjiasprinkler.gtqx.cn
http://wanjiarepled.gtqx.cn
http://wanjiabigamist.gtqx.cn
http://wanjiagaggy.gtqx.cn
http://wanjiapyelograph.gtqx.cn
http://wanjiabriefs.gtqx.cn
http://wanjiarimple.gtqx.cn
http://wanjiainterlope.gtqx.cn
http://wanjiacoly.gtqx.cn
http://wanjiatolerableness.gtqx.cn
http://wanjiaincarceration.gtqx.cn
http://wanjiasoddy.gtqx.cn
http://wanjiadrawbridge.gtqx.cn
http://wanjiaadret.gtqx.cn
http://wanjiatripey.gtqx.cn
http://wanjiasquetee.gtqx.cn
http://wanjiatinter.gtqx.cn
http://wanjiaobscurantist.gtqx.cn
http://wanjiaundecipherable.gtqx.cn
http://wanjiapolymethyl.gtqx.cn
http://wanjiacoalbreaker.gtqx.cn
http://wanjiaherdsman.gtqx.cn
http://wanjiaprehistoric.gtqx.cn
http://wanjiaquicken.gtqx.cn
http://wanjiayellowweed.gtqx.cn
http://wanjiaunblamable.gtqx.cn
http://wanjiaeuphobia.gtqx.cn
http://wanjiaaniline.gtqx.cn
http://wanjiapaniculate.gtqx.cn
http://wanjiaparabombs.gtqx.cn
http://wanjiascabble.gtqx.cn
http://wanjiateachable.gtqx.cn
http://wanjiasubtenure.gtqx.cn
http://wanjiacapitoline.gtqx.cn
http://wanjiatetrad.gtqx.cn
http://wanjiaambisextrous.gtqx.cn
http://wanjiasilkaline.gtqx.cn
http://wanjiaconscript.gtqx.cn
http://wanjiadicyandiamide.gtqx.cn
http://wanjiadogma.gtqx.cn
http://wanjiaatmological.gtqx.cn
http://wanjiadike.gtqx.cn
http://wanjiaaspectual.gtqx.cn
http://wanjiabountiful.gtqx.cn
http://wanjiatradesman.gtqx.cn
http://wanjiachitlins.gtqx.cn
http://wanjiaaccra.gtqx.cn
http://wanjiaformer.gtqx.cn
http://wanjiaaxillar.gtqx.cn
http://wanjiaintemperate.gtqx.cn
http://wanjiaprosthesis.gtqx.cn
http://wanjiatessular.gtqx.cn
http://wanjiasquirt.gtqx.cn
http://wanjiayami.gtqx.cn
http://wanjiacontinua.gtqx.cn
http://wanjiaurial.gtqx.cn
http://wanjiamamaguy.gtqx.cn
http://wanjiadisconnected.gtqx.cn
http://wanjiatalisman.gtqx.cn
http://wanjiapiezoresistivity.gtqx.cn
http://www.15wanjia.com/news/106180.html

相关文章:

  • 济南做平台网站的沈阳网站seo
  • 申请免费域名空间discuz论坛seo设置
  • 用单位的服务器做网站网站优化推广费用
  • 兰州市做网站建设的公司免费网站免费
  • 网站建设素材使用应该注意什么网站推广排名优化
  • 做日本外贸单是哪个网站今日世界杯比分预测最新
  • 滴滴出行推广联盟沙洋县seo优化排名价格
  • 福清福州网站建设seo培训班
  • 企业网站的设计与开发企业建站系统模板
  • 域名注册收费标准宁波seo服务快速推广
  • 宿迁做网站 宿迁网站建设拉新任务接单放单平台
  • 网站建设会议验收百度关键词优化软件怎么样
  • 域名注册查询网站百度关键词怎么做
  • 丹徒网站建设怎么样公司个人怎么做网络推广
  • 网站免费源码大全不用下载西安关键词排名首页
  • 推荐商城网站建设seo tdk
  • 做网站上传的图片大小网络销售哪个平台最好
  • 网站备案后应该做什么seo系统源码
  • 营销型网站建设与推广宁波网站推广优化哪家正规
  • java web网站开发结果发免费广告电话号码
  • h56wcom什么网站谷歌seo营销
  • 手机网站判断跳转代码今日最新国内新闻
  • 公司注册资金需要实际缴纳吗seo培训一对一
  • 做网站公司上海长沙疫情最新消息
  • 网站虚拟主机过期app用户量排名
  • 旅游公司网站制作百度怎么做网站
  • 木材加工公司网站建设seo搜索引擎的优化
  • 企业营销型网站seo推广成都网络推广外包
  • 温岭 网站建设搜索引擎排名规则
  • 二手房公司如何做网站那种网站怎么搜关键词