随笔分类 -  Mysql之存储引擎

16.innodb的buffer pool
摘要:1.前言 其实早就想说说innodb的缓存技术了,但是一直感觉自己可能说不下来,因此这一节我就慢慢的说 2.缓存重要性 innodb的缓存是为了弥补了cpu和磁盘之间执行速度的巨大鸿沟,应该cpu的执行速度比磁盘读写速度要远远高于,因此需要在cpu和磁盘之间弄一个缓存,计算机可以把磁盘的数据先加载到 阅读全文

posted @ 2022-03-05 12:01 太白金星有点烦 阅读(148) 评论(0) 推荐(0)

15.单表访问方法
摘要:1.前言 我们写完查询语句后,在Mysql server层有一个优化器的模块,它会在语句被解析之后,对语句进行优化,优化的结果就是生成一个所谓的执行计划,这个执行计划表明了应该使用了那些索引进行查询,表之间的连接顺序是啥样的,等等。最后会按照执行计划中的步骤调用存储引擎提供的接口来真正地执行查询,并 阅读全文

posted @ 2022-02-22 21:57 太白金星有点烦 阅读(61) 评论(0) 推荐(0)

14.Mysql的数据目录
摘要:1.前言 这里就会简单的介绍几个概念,以供自己回顾,主要是说一些平时不太注意的细节 2.数据库在文件系统中的表示 我们在用create dabase db_name创建数据库时,Mysql会帮我们做两件事: 在数据目录下创建一个与数据库名同名的子目录(或者说是文件夹) 在与该数据库名同名的子目录下创 阅读全文

posted @ 2022-02-16 21:05 太白金星有点烦 阅读(121) 评论(0) 推荐(0)

13.innodb数据页结构02
摘要:1.前言 前面我们主要介绍了关于页中的记录的一些详细信息。也就是说记录存储在页中,页是innodb存储引擎的基本存储单元,但是往往我们的数据是非常多的,因此我们的一个页是远远不能满足,所以我们的数据会分散存储在各个页中 2.Page Direcory(页目录) 我们在用select做查询时,按照最笨 阅读全文

posted @ 2022-02-16 19:57 太白金星有点烦 阅读(99) 评论(0) 推荐(0)

12.Innodb数据页的结构01
摘要:1.前言 在innodb中页是存储空间的基本单位,一个页的大小一般是16kb。innodb为了不同的目的而设计了多种不同类型的页,比如存放表空间头部信息的页,存放change buffer信息的页,存放inode信息的页,存储undo日志信息的页等等,这里这要说说存放表中记录的那种类型的页,官方称这 阅读全文

posted @ 2022-02-14 20:24 太白金星有点烦 阅读(119) 评论(0) 推荐(0)

11.innodb的行格式
摘要:1.前言 在mysql中我们在插入数据的时候主要是以记录为单位向表中插入数据的,这些记录在磁盘中存放的形式也被称为行格式或者记录格式,innodb存储引擎设计的行格式主要有如下4种:1)compact 2)redundant 3)dynamic 4)compressed 2.指定行格式的语法 cre 阅读全文

posted @ 2022-02-06 18:49 太白金星有点烦 阅读(165) 评论(0) 推荐(0)

10 innodb之关键特性刷新邻接页
摘要:innodb 存储引擎还提供了Flush Neighbor page(刷新邻接页)的特性,其工作原理为:当刷新一个脏页时,Innodb存储引擎会检测该页所在区(extent)的所有页,如果是脏页,那么就会一起进行刷新。这样做的好处是,通过AIO可以将多个IO写入操作合并为一个IO操作,故该工作机制在 阅读全文

posted @ 2021-09-05 11:46 太白金星有点烦 阅读(87) 评论(0) 推荐(0)

9 innodb关键特性之自适应哈希索引03
摘要:1.前言 哈希是一种非常快的查找方法,在一般情况下这种查找的时间复杂度为O(1),即一般仅需要一次查找就能定位数据,而B+树的查找次数,取决于B+树的高度,在生产环境中,B+树的高度一般为3~4层,故需要3~4次查询。 2.Adaptive Hash index(AHI) innodb存储引擎会监控 阅读全文

posted @ 2021-09-05 11:45 太白金星有点烦 阅读(308) 评论(0) 推荐(0)

8.innodb关键特性之double write 02
摘要:1.前言 如果说insert buffer带给innodb存储引擎的是性能上的提升,那么doublewrite(两次写),带给innodb存储引擎的是数据页的可靠性 2.部分写失效 当发生数据库宕机时,可能innodb存储引擎正在写入某个页到表中,而这个页只写了一部分,比如16kb的页,只写了4kb 阅读全文

posted @ 2021-09-05 11:44 太白金星有点烦 阅读(176) 评论(0) 推荐(0)

7.innodb关键特性之insert buffer01
摘要:1.前言 自从innodb替代了Myisam之后,越来越收到市场的环境,那么我们真的了解关于innodb存储引擎的的一些关键性特性吗? 2.关键特性 插入缓冲(insert buffer) 两次写(double write) 自适应哈希索引(Adaptive Hash index) 异步IO(Asy 阅读全文

posted @ 2021-09-05 11:43 太白金星有点烦 阅读(148) 评论(0) 推荐(0)

6.innodb之Master thread 工作方式
摘要:1.前言 innodb存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成的,这一节将具体解释该线程的具体实现及该线程可能存在的问题。 2.innodb 1.0.x版本之前的 Master Thread Master thread 具有最高的线程优先级别。其内部由多个循坏(lo 阅读全文

posted @ 2021-09-05 11:42 太白金星有点烦 阅读(148) 评论(0) 推荐(0)

5.Mysql之checkpoint技术
摘要:1.前言 如果执行一条DML语句,如update或者delete改变了页中的记录,那么此时页是脏的,即缓冲池中的页的版本要比磁盘的新,数据库需要将新的版本的页从缓冲池刷新到磁盘 2.checkpoint技术 倘若每次一个页的变化,就将新页的版本刷新到磁盘,那么这个开销是非常大的,若热点数据集中在某几 阅读全文

posted @ 2021-09-04 20:59 太白金星有点烦 阅读(1389) 评论(0) 推荐(0)

4.innodb体系架构之内存
摘要:1.前言 innodb 存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理,因此可将其视为基于磁盘的数据库系统(Disk-base database).在数据库系统中,由于cpu速度和磁盘速度之前的鸿沟,基于磁盘的数据库系统通常使用缓冲池技术来提高数据库的整体性能 2.缓冲池 缓冲池简单地 阅读全文

posted @ 2021-09-04 01:12 太白金星有点烦 阅读(106) 评论(0) 推荐(0)

3.Innodb体系架构之后台进程
摘要:1.前言 innodb存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构 缓存磁盘上的数据,方便快速地读取,同时在对磁盘文件的数量修改之前在这里缓存 重做日志(relog)缓冲 ...... 2.结构图 如上两幅图,第一个是官方 阅读全文

posted @ 2021-09-03 16:23 太白金星有点烦 阅读(146) 评论(0) 推荐(0)

2.Mysql之体系结构
摘要:1.前言 这里主要介绍一下Mysqld的体系结构 2.Mysql之体系结构 这里看到是从网上找到的,很多人都说这幅图是Mysql官网手册上面的,可惜我没有找到。。。 2.1 Connectors 指的是不同语言中与MySQL的连接交互层,这个可以在Mysql官网下面查到关于不同语言的API 2.2  阅读全文

posted @ 2020-10-26 16:40 太白金星有点烦 阅读(62) 评论(0) 推荐(0)

1.Mysql之存储引擎介绍
摘要:1.前言 Mysql之存储引擎是Mysql最核心的部分,这里我们就主要介绍一下几种存储引擎 2.什么叫做存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够 阅读全文

posted @ 2020-10-25 12:02 太白金星有点烦 阅读(104) 评论(0) 推荐(0)

导航