什么是页缓存(PageCache)?页缓存(PageCache)是OS对文件的缓存,用于加速对文件的读写。一般来说,程序对文件进行顺序读写的速度几乎接近于内存的读写速度,主要原因就是由于OS使用PageCache机制对读写访问操作进行了性能优化,将一部分的内存用作PageCache。对于数据的写入,OS会先写入至Cache内,随后通过异步的方式由pdflush内核线程将Cache内的数据刷盘至物理
上文mysql(二)中主要对buffer pool的内存结构进行说明,这篇对数据页等在磁盘上的存储结构进行说明。之前对于mysql存储结构的一些表空间、区(数据区)、数据页等概念进行说明。一、一行数据在磁盘中的存储形式1、这里先提一个问题:为什么要引入数据页的概念? ————如果每次buffer pool从磁盘随机读取数据、buffer pool随机写数据到磁盘。这两个过程数据的交换都是每次交换一
转载
2024-01-06 08:40:58
123阅读
例题 1(1) 题目某文件系统采用索引节点管理,其磁盘索引块和磁盘数据块大小均为4KB字节,且每个文件索引节点有8个地址项iaddr[0] ~ iaddr[7],每个地址项大小为 4 字节,其中 iaddr[0] ~ iaddr[4]采用直接地址索引,iaddr[5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。若用户要访问文件fileX中逻辑块号为5和2056的信
转载
2024-10-25 12:44:22
72阅读
预备知识什么是索引?上一篇中有详细的介绍,可以过去看一下:什么是索引?索引的本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。磁盘中数据的存取以机械硬盘来说,先了解几个概念。扇区:磁盘存储的最小单位,扇区一般大小为512Byte。磁盘块:文件系统与磁盘交互的的最小单位(计算机系统读写磁盘
转载
2023-09-13 17:19:32
198阅读
目录一:基础知识1:页。2:索引。二:索引的分类 聚集索引和非聚集索引 :参考三:索引匹配方式四:使用索引中的小细节五:hash索引总结一:基础知识磁盘预读(预读的长度一般为页的整数倍)1:页。内存和磁盘交互的时候不是想读多少字节就读多少字节的,它有个最小的逻辑单元,成为页或块。页是存储器的逻辑块,在操作系统中往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一
转载
2023-10-10 22:50:38
114阅读
有关Cache文件缓存是提升性能的重要手段。毋庸置疑,读缓存(Read caching)在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据),而写缓存(Write caching)则相对复杂。Linux内核将写磁盘的操作分解成了,先写缓存,每隔一段时间再异步地将缓存写入磁盘。这提升了IO读写的速度,但存在一定风险。数据没有及时写入磁盘,所以存在数据丢失的风险。同样,也存在cache被写爆
转载
2024-09-14 23:24:11
10阅读
数据库存储和读取在整个数据库体系结构中,我们可以使用不同的存储引擎来存储数据,而绝大多数存储引擎都以二进制的形式存储数据。在 InnoDB 存储引擎中,所有的数据都被逻辑地存放在表空间中,表空间(tablespace)是存储引擎中最高的存储逻辑单位,在表空间的下面又包括段(segment)、区(extent)、页(page):同一个数据库实例的所有表空间都有相同的页大小;默认情况下,表空间中的页大
转载
2023-10-24 00:01:44
106阅读
InnoDB索引的数据结构InnoDB索引采用了B-Tree的数据结构,数据存储在叶子节点上,每个叶子节点默认的大小是16KB。当新记录插入到InnoDB聚簇索引中时,如果按顺序插入索引记录(升序或降序),当达到叶子节点最大的容量时,下一条记录就会写到新的的页中。叶子节点可使用的容量为总容量的15/16,InnoDB会留1/16的空间,以备将来插入和更新索引记录时使用, 如果以随机顺序插入记录,则
转载
2023-12-15 19:37:46
53阅读
1.关闭视觉特效反正 Win8 的界面主题都已经是反璞归真,取消了Aero磨砂效果,咱们也就不在乎这么点视觉特效了吧。关闭方法: 系统属性 – 高级– 性能 – 设置 – 关闭淡出淡入效果。之后打开文件夹,小软件之类的,速度杠杠的!2.关闭磁盘碎片整理(优化驱动器)计划用好磁盘碎片整理可以提高磁盘性能,但如果你习惯了手动去整理,那么可以关闭整理计划,避免在你工作的时候自动整理,影响性能。 方法:资
概念 扇区:磁盘的最小存储单位;磁盘块:文件系统读写数据的最小单位;页:内存的最小存储单位; 联系 一个磁盘块由连续几个(2^n)扇区组成;页的大小为磁盘块大小的2^n倍; 查看 页大小查看: getconf PAGE_SIZE,常见为4K;磁盘块大小查看:stat /boot/|grep “IO ...
转载
2021-09-04 22:39:00
1059阅读
2评论
目录1、表空间和数据区的概念 表空间段(segment)区(extent)页(page)总结1、表空间和数据区的概念 表空间 从 InnoDB 逻辑存储结构来看,所有的数据都被逻辑的存放在一个空间中,这个空间就叫做表空间(tablespace)。表空间由 段(segment)、区(e
转载
2023-12-13 06:46:50
69阅读
一、索引概念 索引的本质就是不断缩小想要查找到的数据的范围来筛选想要的结果,同时吧随机事件变成顺序事件二、磁盘中的一些概念 扇区:磁盘存储的最小单位,一般为512Byte 磁盘块:文件系统与磁盘交互的最小单位 mysql中的页:与磁盘交互的最小单位,mysql内部的数据结构,大小为16kb,一个页中有4磁盘块, mysql每次从磁盘中读取数据默认最小是16kb,要么不读,读了
转载
2023-08-12 20:05:58
108阅读
HappyDay1234567890为什么需要它?当数据存储在基于磁盘的存储设备上时,它被存储为数据块.这些块全部被访问,使它们成为原子磁盘访问操作。磁盘块的结构与链接列表的方式基本相同;它们都包含一个数据节,一个指向下一个节点(或块)位置的指针,并且都不需要连续存储。由于许多记录只能在一个字段上排序,我们可以声明,在未排序的字段上搜索需要线性搜索N/2块访问(平均),其中N表跨越的块数。如果该字
转载
2024-02-04 00:37:51
19阅读
背景 使用mysql最多的就是查询,我们迫切的希望mysql能查询的更快一些,我们经常用到的查询有:按照id查询唯一一条记录按照某些个字段查询对应的记录查找某个范围的所有记录(between and)对查询出来的结果排序 mysql的索引的目的是使上面的各种查询能够更快。一、预备知识 什么是索引? 上一篇中有详细的介绍,可以过去看一下:什么是索引? 索引的本质:通过不断地缩小想要获取数据
转载
2023-06-29 10:40:59
112阅读
为什么需要索引(Why is it needed)?当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性(原子性是指一个完整的事务程序,要么成功,要么失败回滚)。硬盘数据块存储结构类似于链表,都包含数据部分,以及一个指向下一个节点(或数据块)的指针,不需要连续存储。记录集只能在某个关键字段上进行排序,所以如果需要在一个无序字段上进行搜索,
转载
2023-10-11 16:41:34
62阅读
详解b+树如上图,是一颗b+树,关于b+树的定义可以参见B+树,这里只说一些重点,浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所示),如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。真实的数据存在于叶子节点即3、5、9、10、13、15、28、29、36、6
转载
2024-07-08 21:10:23
77阅读
我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。一、平衡多路查找树(B-Tree)B-Tree是为磁盘等外存储设备设计的一种平衡查找树。因此在讲 B-Tree之前先了解下磁盘的相关知识。系统从磁盘读取数据到内存时是以磁盘块(block)为基本单位,大小为4K,位于
转载
2023-08-17 15:47:07
198阅读
作为一名DBA,选择自己的数据存储在什么上面,应该是最基本的事情了。但是很多DBA却容易忽略了这一点,我就是其中一个。之前对raid了解的并不多,本文就记录下学习的raid相关知识。一、RAID的基础知识【定义】RAID(Redundant Array of Independent Disk)是一种独立冗余磁盘阵列。1、为什么要使用RAID?我们知道,单块磁盘无论是从性能上、容量上、还是安全上都存
大部分的Linux文件系统(如ext2、ext3)规定,一个文件由目录项、inode和数据块组成: 目录项:包括文件名和inode节点号。
Inode:又称文件索引节点,包含文件的基础信息以及数据块的指针。
数据块:包含文件的具体内容。先说inode
理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector),每个扇区储存5
转载
2024-05-18 16:26:11
467阅读
1.执行SQL时,数据在磁盘与缓存的交互原理当执行CRUD操作的时候,会从磁盘上加载数据页到Buffer Pool的缓存页里去,然后更新了缓存页后,又会刷新回磁盘上的数据页里去。在MySQL中进行数据操作的最小单位应该是数据页,而数据是一行一行的在磁盘和缓存中进行存储的。2.数据页构成原理这里要引入一个问题,每个数据页的默认大小是16kb,那么这16kb的大小就全用来存放所有的数据行了吗?明显不是
转载
2023-10-09 09:25:33
214阅读