博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql读书笔记(三)
阅读量:6896 次
发布时间:2019-06-27

本文共 1012 字,大约阅读时间需要 3 分钟。

hot3.png

  1. 插入缓冲( insert buffer )

    对于非聚集索引的插入和更新操作,不是每一次直接插入到索引页中,而是先判断插入的非聚集索引页是否在缓冲池中,若在,则直接插入;若不在,则先放到一个 Insert buffer对象中。表象上看数据库这个非聚集的索引已经插到叶子节点,而实际上没有,只是存放到另外一个位置。然后再以一定的频率和情况进行insert buffer和辅助索引页子节点的merge操作,这时将多个插入合并到一个操作中,这就大大提高了非聚集索引插入的性能。

    需要同时满足的条件:

    (1) 索引是辅助索引

    (2) 索引不是唯一的

    查看插入缓冲情况:  show engine innodb status;

    Ibuf: size XXX, free list len XXX, seg size XXXX,

    XXXXX inserts, XXXXX merged recs, XXXX merges

    配置参数: innodb_buffer_pool 默认2 ,表示插入缓存能够占用缓存池最大空间为1/2

  2. 两次写 ( Double Write )

     次写给innodb带来的是可靠性,主要用来解决部分写失败(partial page write)doublewrite有两部分组成,一部分是内存中的doublewrite buffer,大小为2M,另外一部分就是物理磁盘上的共享表空间中连续的128个页,即两个区,大小同样为2M。当缓冲池的胀业刷新时,并不直接写硬 盘,而是通过memcpy函数将脏页先拷贝到内存中的doublewrite buffer,之后通过doublewrite buffer再分两次写,每次写入1M到共享表空间的物理磁盘上,然后马上调用fsync函数,同步磁盘

  3. 自适应哈希索引( Adaptive Hash Index)

    InnoDB引擎会监控对表上各索引页的查询。如果观察到建立哈希索引可以带来速度提升,则建立哈希索引,称之为AHI。AHI是通过缓冲池的B+树页构造而来,因此建立的速度很快,而且不需要对整张表构建hash索引。InnoDB存储引擎会自动根据访问的频率和模式来自动地为某些热点页建立hash索引。

  4. 异步IO( Async IO)

  5. 刷新邻接页( Flush Neighbor Page)

转载于:https://my.oschina.net/copy202/blog/475759

你可能感兴趣的文章
Django一些技巧
查看>>
怎样在Android中解析doc、docx、xls、xlsx格式文件
查看>>
自加自减
查看>>
if else if 注意:else离它最近的if是一对(程序自动对齐ctrl+e+d)
查看>>
请求时参数到后台解码时会出现乱码问题
查看>>
Json在asp.net开发中的应用
查看>>
JavaScript和Ajax部分(2)
查看>>
驰骋工作流引擎-底层开发API 说明文档
查看>>
http://blog.163.com/db_teacher/blog/static/194540298201110723712407/
查看>>
未能解析引用的程序集……因为它对不在当前目标框架……
查看>>
关于nginx架构探究(2)
查看>>
记一次线上gc调优的过程
查看>>
js判断是否处于隐藏状态
查看>>
VS2012 未找到与约束 contractName Microsoft.visualStudio.Text.ITextDocumentFactoryService.... 匹配的导出...
查看>>
一张图了解Python
查看>>
C++专题(三)
查看>>
背包问题(01背包,完全背包,多重背包)
查看>>
洛谷——P2040 打开所有的灯
查看>>
磁盘管理
查看>>
ES6学习笔记之 let与const
查看>>