你的位置:信誉好的网络娱乐平台 > 新闻动态 > 【青鸟飞扬教育】什么是 INNODB BUFFER POOL
【青鸟飞扬教育】什么是 INNODB BUFFER POOL
发布日期:2025-03-07 18:33 点击次数:168
计算机使用它们的大部分内存来提升对经常访问的数据的性能。这就是我们所知的缓存,是系统的一个非常重要的组成部分,因为访问硬盘的数据可能会慢到 100 到 100000 倍,这取决你访问的数据量。 MyISAM 是使用操作系统的文件系统缓存来缓存那些经常被查询的数据。然而 InnoDB 使用的是一种非常不同的方法。 不依赖操作系统的缓存,InnoDB 自己在 InnoDB Buffer Pool 处理缓存。经过这篇文章你会学到它是如何工作的,为什么以那种方式来实施是一个不错的想法。
InnoDB 缓冲池不仅仅是一个缓存
InnoDB 缓冲池实际上用于多个目的,它用来:
数据缓存 – 这绝对是它的最重要的目的 索引缓存 – 这使用是的同一个缓冲池 缓冲 – 更改的数据 (通常称为脏数据) 再被刷新到硬盘之前先存放到缓冲 存储内部结构 – 一些结构如自适应哈希索引或者行锁也都存储在 InnoDB 缓冲池 下面是一个经典的把 innodb-buffer-pool-size 设置为 62G 的 InnoDB 缓冲池页的分布情况正如你所看到的,Buffer Pool 大多是用于普通的 InnoDB 页面,但大约 10% 用作其它目的。 这张表的单位是 InnoDB 页。单个页面大小实际上是 16K,所以你可以乘以 16,384 来得到以字节为单位更直观的使用情况。
展开剩余45%InnoDB 缓冲池的大小
那么 innodb-buffer-pool-size 的大小应该设置为什么呢?下面我们就开始谈到这个。
独立服务器 在一个独立的只使用 InnoDB 引擎的 MySQL 服务器中,根据经验,推荐设置 innodb-buffer-pool-size 为服务器总可用内存的 80%。 为什么不是 90% 或者 100% 呢? 因为其它的东西也需要内存:
每个查询至少需要几 K 的内存 (有时候是几 M) 有各种其它内部的 MySQL 结构和缓存 InnoDB 有一些结构是不用缓冲池的内存的 (字典缓存,文件系统,锁系统和页哈希表等) 也有一些 MySQL 文件是在 OS 缓存里的 (binary 日志,relay 日志,innodb 事务日志等) 此处,你也必须为操作系统留出些内存 发布于:湖南省
