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

南通做网站优化哪家好徐州seo公司

南通做网站优化哪家好,徐州seo公司,本地网站架设工具,最近发生的新闻目录 1.InnoDB的概览 表空间文件在哪里? 为什么要设计成内存结构和磁盘结构? 表空间与表空间文件关系? 用户数据如何在表空间文件存储? 2.页 如何设置页的大小? 页的结构及在表空间的位置? 页头包…

目录

1.InnoDB的概览

表空间文件在哪里?

为什么要设计成内存结构和磁盘结构?

表空间与表空间文件关系?

用户数据如何在表空间文件存储?

2.页

如何设置页的大小?

页的结构及在表空间的位置?

页头包含的信息:

数据行

数据行的组成信息?

数据行如何组织在一起?

​如何标识新页中第一行和最后一行?遍历页中数据从哪里开始哪里结束?

向新页中插入数据是如何执行的?

要查询的数据在某一页,如何定位他的位置?是一条条遍历吗

数据页的完整结构?

总结:关于页说了什么

InnoDB如何保证页在磁盘连续性?

数据很少时如何避免空间浪费?

4.区组

不同区在磁盘上大概率是不连续的,那么InnoDB如何管理区?

5.段


1.InnoDB的概览

InnoDB主要包括内存结构和磁盘结构。

内存结构包括:缓冲池,变更缓冲区,日志缓冲区,自适应哈希。

磁盘结构包括:系统表空间,独立表空间,通用表空间,临时表空间,撤销表空间,重做日志,双写缓冲区。

表空间文件在哪里?

表空间是用来存储表中数据的文件,表空间大小由存储的数据多少决定不同表空间存储的数据种类不同。

InnoDB创建表,默认在数据目录对应的数据库子目录中生成相应的表空间文件。以 .ibd文件结尾

为什么要设计成内存结构和磁盘结构?

磁盘结构文件是用来保存数据持久化,内存结构是用来缓存数据提升效率的。

表空间与表空间文件关系?

表空间是MySQL为了管理数据设计的一种数据结构,表空间文件时对其具体实现。

用户数据如何在表空间文件存储?

数据行的方式存在对应表空间,表空间有段,区组,区,页,数据行组合,页是最小单位。页的大小为16KB,这个大小可以尽可能减少磁盘的IO次数,提高性能。每次从磁盘读取一页数据放入内存,下次访问的数据大概率还在这个页中(局部性原理)。

多个数据行组成页,多个页组成区,多个区组成区组,多个区组组成段。


2.页

可以根据需要自定义页大小,16KB是默认值,但是调整页大小保证是4KB的整数倍因为操作系统的文件系统管理磁盘文件就是4KB为一个管理单元。

设置innodb_page_size值,可以是4096,8192,16384,32768,65536对应4KB, 8KB , 16KB, 32KB, 64KB.

如何设置页的大小?

进入 /etc/mysql/ 目录中,修改my.cnf文件。

页的结构及在表空间的位置?

页有多种类型,但都包括页头,页尾,存储数据和索引的叫“索引页/数据页”。页主体有数据行构成

页都有哪些?

InnoDB在不同场景有数据页,Undo Log页,Change Buffer页,Extent Descriptor页,InnoDB段信息页等等。我们需要关注数据页,InnoDB有个概念叫“索引即数据”,所以也叫“索引页”。

页头页尾包含哪些信息?

页头包含的信息:

1.页号:4Byte,相当于身份证标识,可以看出InnoDB最多有 2^(4*8)-1约42亿个页,每个大小默认16KB,一共64TB,InnoDB表空间最大容量是64TB。

2.上一页页号:FIL_PAGE_PREV

3.下一页页号:FIL_PAGE_NEXT,多个页通过这两个信息组成双向链表,即使页地址不连续但也可以通过链表链接。

4.表空间ID:FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID,当前页属于哪个表空间

5.页类型:FIL_PAGE_TYPE

6.最近次修改的LSN:FIL_PAGE_LSN,占用8Byte

7.已经刷到磁盘的LSN:FIL_PAGE_FILE_FLUSH_LSN,占用8Byte

8.校验和:FIL_PAGE_SPACE_OR_CHKSUM ,用来校验页的完整性

页尾包含信息:

1.校验和:对应页头的完整性

2.最近次修改的LSN

数据行

除了页头页尾的区域叫“页主体”,页主体中包含数据行,还有提高查询效率的页目录Page Directory方便操作管理数据页的数据页头。

数据行的组成信息?

数据行包含两部分,一部分是存储额外信息,一部分是存储真实数据。

额外信息包含变长字段长度列表NULL值列两个大小不确定的区域以及固定5字节的头信息

数据行如何组织在一起?

通过头信息中的下一行地址偏移量netx_record,将所有数据行组成一个单链表,这样的好处:向左是额外信息的头信息,向右是真实数据。如图:



如何标识新页中第一行和最后一行?遍历页中数据从哪里开始哪里结束?

创建新页会自动分配两行,一个行类型为2的最小行Infimun,heap_no位置固定为0号,一个行类型为3的最大行Supremun,heap_no位置固定为1号。

新页中没有数据时,最小行Infimun的next_record与最大行直接相连。

 

向新页中插入数据是如何执行的?

插入数据时,heap_no会从2开始依次递增,如果是真实数据record_type为0,如果是索引数据record_type为1。将Infimun连接第一个数据行,最后一行真实数据链接Supremun。

将页中记录真实数据区域叫“用户数据区”,未被数据行占有的叫“空闲区”。

要查询的数据在某一页,如何定位他的位置?是一条条遍历吗?

为提高查询效率,InnoDB用二分查找

页中有叫“页目录(Page Directory)”的结构,将所有页内的数据行进行分组,最小行单独一组,每组8个数据行,按照主键从小到大。同时每组的最后一行放入称为“槽”的结构中,每个槽都记录在页中,如果分组超过8个,则会新增加一组,同时魅族最后一行会用n_owned记录每组数据的个数。

后续查找数据通过二分查找找到槽,在槽内8个数据中遍历。

例如:查找主键为6的行,先对比槽中记录的主键值,定位第二个槽,然后从该槽中遍历数据。

事务索引这些东西如何在槽中记录?

事务,索引这些全部储存在数据页头

数据页的完整结构?

其实就是一个页的完整结构:页头,页尾,页目录,数据页头,最大行,最小行,数据行。

总结:关于页说了什么

1.设置页的大小

2.页的主要分类

3.页头,页尾包含什么信息

4.页主体组成部分

5.数据行的组成部分

6.数据页头包含的统计和描述信息


3.区

InnoDB如何保证页在磁盘连续性?

在磁盘中地址不连续访问的效率会降低,于是尽可能在磁道上读取连续数据减少磁头移动,MySQL用来管理页,大小1MB,存放64个页,就算跨页读取数据,大概率目标页也在这个区里

如果频繁读取某区中的页,可以把整个区读取到内存里,进一步提升效率。

数据很少时如何避免空间浪费?

在MySQL8.0后,一开始创建7个页放在叫碎片区的区域,不是完整的区。数据量增加申请新的页,页的数量到32个,后续申请完整的区来存储这些页。

4.区组
不同区在磁盘上大概率是不连续的,那么InnoDB如何管理区?

数据量越来越大,区越来越多。MySQL定义了区组的结构,每个区组管理256个区即256MB,这样可以高效定位到每个区。

5.段

以上数据结构还有优化的空间,就是用“段”,段的作用来区分在不同功能的区和碎片区中的页,段分为“叶子节点段” 和 “非叶子节点段”作为B+树索引中的叶子,非叶子节点提高查询效率 。非叶子节点段用来储存和管理索引树 ,叶子节点储存管理实际数据。 逻辑上呢,由“叶子节点段”和“非叶子节点段”组成表空间文件 “.ibd"


文章转载自:

http://fDGx07d4.wtnyg.cn
http://8pjzxaRX.wtnyg.cn
http://UVSL2mfm.wtnyg.cn
http://mQHKt8NE.wtnyg.cn
http://a6WyeAiV.wtnyg.cn
http://Pv9RK25V.wtnyg.cn
http://Q88Cd5Bl.wtnyg.cn
http://V0k52E2h.wtnyg.cn
http://BY5a3VFU.wtnyg.cn
http://ihxXE94L.wtnyg.cn
http://pevYGO8A.wtnyg.cn
http://clrDltbC.wtnyg.cn
http://XPsYXJ8T.wtnyg.cn
http://vJ9nC6s5.wtnyg.cn
http://KMFPwReT.wtnyg.cn
http://ErrJmc6b.wtnyg.cn
http://GdnlUa0e.wtnyg.cn
http://ezSNyhgs.wtnyg.cn
http://9drn9nto.wtnyg.cn
http://76JZULNi.wtnyg.cn
http://mBp7NKZ1.wtnyg.cn
http://oEC9ropx.wtnyg.cn
http://oqTamCaw.wtnyg.cn
http://pWBnxjH8.wtnyg.cn
http://rU7WQ0Wl.wtnyg.cn
http://mUY5CSNF.wtnyg.cn
http://sS8foJGy.wtnyg.cn
http://4CcJ6n9Z.wtnyg.cn
http://6RqBBbAd.wtnyg.cn
http://rtzT3JOF.wtnyg.cn
http://www.dtcms.com/wzjs/640630.html

相关文章:

  • 怎么样才能让网站黄骅港务
  • 沈阳做网站培训提供企业网站建设方案
  • 网站推广合作机房网络建设方案
  • 南京百度网站推广做哪种类型的网站赚钱呢
  • 材料信息价查询网站网站设计客户端
  • 新乡网站seo优化北京网站建设seo公司哪家好
  • html企业网站模板个人中心页面设计html
  • 网站漂浮怎么做阿里云网站的logo怎么写进去的
  • 网站模板的组成规划电子商务网站
  • 网站建设地带宁波网站推广怎样做
  • 广东建设执业资格中心网站做电影网站都需要什么工具
  • 青岛建设项目环评公示网站it软件开发培训机构
  • 长春建设网站wordpress meta slider
  • 商丘网站建设商丘微信营销的方法有哪些
  • 做seo前景怎么样长沙网络优化产品
  • 餐饮o2o 网站建设哪个大学的网站做的最好看
  • 门户网站建设 工具网站优化软件排名
  • 网站开发工作计划重庆市建设工程信息官方网站
  • 网易考拉的网站建设安阳网站建设商祺
  • 旅游电网站建设目标导航网站 php
  • 全网vip影视自助建站系统浙江建设网证书查询
  • 南通中小企业网站制作个股期权网站开发
  • 南昌优化网站分析免费网站建设找哪家
  • 太原市建设工程安全监督站网站wordpress防盗图
  • 企业网站怎么搭建wordpress压缩数据库查询
  • 站长之家seo综合查询网页设计与开发期末作品
  • 番禺 网站建设iis 建立子网站
  • 网站怎么做才被收录快网站开发a — ajax
  • 机房网站建设方案网站建设公司 佛山
  • 用jsp加点mvc做网站怎么样wordpress cosy