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

旗袍网站架构超级推荐的关键词怎么优化

旗袍网站架构,超级推荐的关键词怎么优化,做服装网站的意义是什么,北京建设网站哪家好1. 关于索引组织表 InnoDB使用的是索引组织表(IOT)的方式存储表记录,索引组织表以主键构建一个B-tree的数据结构来存储行记录,行记录存储在树的叶节点内。这与Oracle数据库是不同的,Oracle数据库默认创建的表是堆组织表(HOT),HOT…

1. 关于索引组织表

InnoDB使用的是索引组织表(IOT)的方式存储表记录,索引组织表以主键构建一个B-tree的数据结构来存储行记录,行记录存储在树的叶节点内。这与Oracle数据库是不同的,Oracle数据库默认创建的表是堆组织表(HOT),HOT记录按堆数据结构进行存储。在InnoDB中,我们将存储行记录的B-tree索引称为Clustered Index, 而表的相关普通B-tree索引(非主键索引)称为Secondary Index。

The data in each table is divided into pages. The pages that make up each table are arranged in a tree data structure called a B-tree index. Table data and secondary indexes both use this type of structure. The B-tree index that represents an entire table is known as the clustered index, which is organized according to the primary key columns. The nodes of a clustered index data structure contain the values of all columns in the row. The nodes of a secondary index structure contain the values of index columns and primary key columns.

存储Clustered Index的节点(页)与Secondary Index的的节点的内容是不一样的,树结构,包含页节点(Leaf)和非叶节点(Non-Leaf),前文提到,InnoDB中表的记录和相关索引都使用FIL_PAGE_INDEX Page存储,要解析一个FIL_PAGE_INDEX页的第一步就是要确定这个页存储的是什么数据。

1. FIL_PAGE_INDEX Page的结构

前文提到,表和其相关索引的数据是存储在FIL_PAGE_INDEX页的,那么我们首先看看FIL_PAGE_INDEX的页结构:

    0+--------------------------+| FIL Header (38)          |38+--------------------------+| INDEX Header (36)        |74+--------------------------+| FSEG Header (20)         |94+--------------------------+| System Records (26)      |120+--------------------------+| User Records             | // Records are un-ordered physically, 物理无序(不按主键顺序)存放, 类似于堆表|                          | // 但会由一个单向链表(singly-linked)将用户记录按主键有序串起来。+--------Heap Top----------+ // Heap Top是Page空间使用的高水位(HWM)| Free Space               |+--------------------------+| Page Directory           | // The page directory grows downwards from the FIL trailer in ascending order by key. //空间占用从后往前增长|                          | // The number of entries is stored in the INDEX header. 数量记录在INDEX Header->PAGE_N_DIR_SLOTS中。
16376+--------------------------+| FIL Trailer (8)          |
16384+--------------------------+
* 前面的数字是在Page内的偏移(bytes)

解析的第一步需要解析FIL_PAGE_INDEX的INDEX_Header结构:

38 +----------------------+ | PAGE_N_DIR_SLOTS (2) |
40 +----------------------+| PAGE_HEAP_TOP (2)    |
42 +----------------------+| PAGE_N_HEAP (2)      |
46 +----------------------+| PAGE_FREE (2)        |
48 +----------------------+ | PAGE_GARBAGE (2)     |
50 +----------------------+| PAGE_LAST_INSERT (2) |
52 +----------------------+| PAGE_DIRECTION (2)   |
52 +----------------------+| PAGE_N_DIRECTION (2) |
54 +----------------------+| PAGE_N_RECS (2)      |
56 +----------------------+| PAGE_MAX_TRX_ID (2)  |
64 +----------------------+| PAGE_LEVEL (2)       |
66 +----------------------+ | PAGE_INDEX_ID (2)    |
73 +----------------------+ * 前面的数字是在Page内的偏移(bytes)

通过解析INDEX_Header,我们就可以知道FIL_PAGE_INDEX存储的是哪个索引,记录类型,page level, …:

public class IdxPage1 {public static void main(String[] args) throws IOException, Exception {String fileName = "D:\\Data\\mysql\\8.0.18\\data\\sakila\\film.ibd";try (IbdFileParser parser = new IbdFileParser(fileName)) {List<Long> pageNums = parser.getPageTypeMap().get(FilHeader.FIL_PAGE_INDEX);StringBuilder buff = new StringBuilder();buff.append(" PAGE       PAGE_TYPE LEVEL INDEX_ID   PAGE_PREV   PAGE_NEXT\n").append("----- --------------- ----- -------- ----------- -----------\n");for (long pageNum : pageNums) {IndexPage indexPage = (IndexPage) parser.getPage(pageNum);FilHeader filHeader = indexPage.getFilHeader();IndexHeader indexHeader = indexPage.getIndexHeader();buff.append(String.format("%5d ", pageNum)).append(String.format("%15s ", filHeader.getPageTypeName())).append(String.format("%5d ", indexHeader.getPageLevel())).append(String.format("%8d ", indexHeader.getIndexId())).append(String.format("%11d ", filHeader.getPreviousPage())).append(String.format("%11d ", filHeader.getNextPage())).append("\n");}System.out.println(buff);}}
}
 程序输入:PAGE       PAGE_TYPE LEVEL INDEX_ID   PAGE_PREV   PAGE_NEXT
----- --------------- ----- -------- ----------- -----------4  FIL_PAGE_INDEX     1      596  4294967295  4294967295 5  FIL_PAGE_INDEX     1      597  4294967295  4294967295 6  FIL_PAGE_INDEX     0      598  4294967295  4294967295 7  FIL_PAGE_INDEX     0      599  4294967295  4294967295 8  FIL_PAGE_INDEX     0      596  4294967295           9 9  FIL_PAGE_INDEX     0      596           8          10 10  FIL_PAGE_INDEX     0      596           9          11 11  FIL_PAGE_INDEX     0      596          10          12 12  FIL_PAGE_INDEX     0      596          11          13 13  FIL_PAGE_INDEX     0      596          12          14 14  FIL_PAGE_INDEX     0      596          13          15 15  FIL_PAGE_INDEX     0      596          14          18 16  FIL_PAGE_INDEX     0      597  4294967295          17 17  FIL_PAGE_INDEX     0      597          16  4294967295 18  FIL_PAGE_INDEX     0      596          15          19 19  FIL_PAGE_INDEX     0      596          18          20 20  FIL_PAGE_INDEX     0      596          19  4294967295 

首先我们观察INDEX_ID,这是索引在InnoDB中的唯一编号,通过输出我们可以看到sakila.film表有4个索引,编号分别为: 596, 597, 598和599,INDEX_ID对应的页存储的就是该索引的数据。我们可以在MySQL中查到对应信息:

selectidx.space space_id,idx.page_no,index_id,idx.name index_name,tab.name table_name
from innodb_indexes idx, innodb_tables tab
whereidx.table_id = tab.table_idand index_id in(596, 597, 598, 599);--语句输出: 
space_id|page_no|index_id|index_name                 |table_name |
--------+-------+--------+---------------------------+-----------+387|      4|     596|PRIMARY                    |sakila/film|387|      5|     597|idx_title                  |sakila/film|387|      6|     598|idx_fk_language_id         |sakila/film|387|      7|     599|idx_fk_original_language_id|sakila/film|

这与我们解析的结果是一致的。结合PAGE_LEVEL和PAGE_PREV/PAGE_NEXT信息可以得到整棵B-Tree的基本层次结构, 以主键(PRIMARY, 596)为例,我们可以看到596号索引最大的page_level为1,位于page(4), 最大的level代表着树的根节点(root), page4的page_next和page_prev都为0xffffffff(4294967295),可以理解为指向自己或者终结。page(8)的page_prev为0xffffffff,level=0,代表叶节点,是叶节点的最左边节点。page(20)的page_nex为0xffffff, level=0, 说明是叶子节点最右边的节点。所以根据解析输出,我们可以描绘树的基本结构:

Level 1:                         page(4)|+---------+----------+---------+--------+/         /           |          \        \
Level 0:  page(8) <-> page(9) <-> page(10) <-> ... <-> page(20) 

后续文章将开始讨FIL_PAGE_INDEX页内的记录内容。


文章转载自:
http://vellication.c7493.cn
http://hydropath.c7493.cn
http://erythroblastosis.c7493.cn
http://foamback.c7493.cn
http://reachless.c7493.cn
http://earthmoving.c7493.cn
http://parergon.c7493.cn
http://phonometer.c7493.cn
http://phosphatase.c7493.cn
http://cytotoxic.c7493.cn
http://guickwar.c7493.cn
http://bylaw.c7493.cn
http://valorisation.c7493.cn
http://rescue.c7493.cn
http://cousinry.c7493.cn
http://morphia.c7493.cn
http://web.c7493.cn
http://parapolitical.c7493.cn
http://signman.c7493.cn
http://intermittence.c7493.cn
http://schismatical.c7493.cn
http://cospar.c7493.cn
http://australian.c7493.cn
http://valuables.c7493.cn
http://cascaron.c7493.cn
http://saxtuba.c7493.cn
http://komatik.c7493.cn
http://adynamia.c7493.cn
http://peasen.c7493.cn
http://honeybunch.c7493.cn
http://unintentional.c7493.cn
http://hypoproteinemia.c7493.cn
http://fenrir.c7493.cn
http://opiumism.c7493.cn
http://homopolar.c7493.cn
http://stockcar.c7493.cn
http://theatrically.c7493.cn
http://accessorial.c7493.cn
http://tia.c7493.cn
http://snotnose.c7493.cn
http://fryer.c7493.cn
http://peacekeeping.c7493.cn
http://scrimshander.c7493.cn
http://leap.c7493.cn
http://antimalarial.c7493.cn
http://salishan.c7493.cn
http://polygynist.c7493.cn
http://storey.c7493.cn
http://lank.c7493.cn
http://syllabub.c7493.cn
http://osteological.c7493.cn
http://pillory.c7493.cn
http://lavatory.c7493.cn
http://dilli.c7493.cn
http://credenza.c7493.cn
http://warder.c7493.cn
http://quadriceps.c7493.cn
http://paster.c7493.cn
http://tram.c7493.cn
http://grotty.c7493.cn
http://samplesort.c7493.cn
http://mastoidean.c7493.cn
http://jawboning.c7493.cn
http://terni.c7493.cn
http://naumachia.c7493.cn
http://venice.c7493.cn
http://attitudinal.c7493.cn
http://bedim.c7493.cn
http://yock.c7493.cn
http://fumet.c7493.cn
http://couchant.c7493.cn
http://mitrebox.c7493.cn
http://shiveringly.c7493.cn
http://midas.c7493.cn
http://smithereen.c7493.cn
http://fenland.c7493.cn
http://peignoir.c7493.cn
http://affectless.c7493.cn
http://spacial.c7493.cn
http://hydrolab.c7493.cn
http://filly.c7493.cn
http://jamesonite.c7493.cn
http://noncommissioned.c7493.cn
http://pentene.c7493.cn
http://opisthobranch.c7493.cn
http://emblematic.c7493.cn
http://decrypt.c7493.cn
http://pondok.c7493.cn
http://enface.c7493.cn
http://splenalgia.c7493.cn
http://aeroelastic.c7493.cn
http://nouadhibou.c7493.cn
http://insuppressible.c7493.cn
http://cyclize.c7493.cn
http://aeciostage.c7493.cn
http://chenar.c7493.cn
http://flammability.c7493.cn
http://diosmose.c7493.cn
http://week.c7493.cn
http://testament.c7493.cn
http://www.zhongyajixie.com/news/87895.html

相关文章:

  • 华艺网络网站开发百度推广客户端
  • 唐山房地产网站建设客户关系管理
  • 住房和城乡建设部门户网站湖南有实力seo优化哪家好
  • 百度做的网站 后台管理怎么进入浏览器打开
  • 个人做网站用哪个主机好企业网站源码
  • 宽屏网站朋友圈广告投放价格表
  • 财务记账网站开发seo网站收录工具
  • 制作网页时不能选用的照片格式seo专业培训技术
  • 做家具定制的设计网站网站域名查询ip地址
  • 免费b站推广网站复制码网络营销推广策略
  • 国外公司做中国网站杭州百度人工优化
  • 网站微信访问不了百度优化关键词
  • 龙华观澜网站建设深圳开发公司网站建设
  • 越南做It网站推广免费刷seo
  • WordPress搜索按钮代码全网seo是什么意思
  • 专业供应的网站制作济南百度推广公司电话
  • 网站都是什么软件做的子域名查询工具
  • 网站建设与运营固定资产桂林市天气预报
  • 天津网站设计线上培训机构有哪些
  • 扁平化设计 政府网站青岛seo推广公司
  • 用vs2013做网站自创网站
  • dedecms做的网站如何上线旅游景区网络营销案例
  • 网站建设打造seo网络推广公司报价
  • 加强档案网站建设百度seo优化包含哪几项
  • 做购票系统网站seo就是搜索引擎广告
  • 网站建设技术 教材百度网站app下载
  • 网站排名必做阶段性seo策略网络营销策略优化
  • 手机网站怎么导入微信朋友圈吉安seo招聘
  • 如何建立自己的网站去推广关键词首页排名优化
  • wordpress自定义导航滨州seo排名