【青鸟飞扬教育】什么是 INNODB BUFFER POOL

信誉好的网络娱乐平台

信誉好的网络娱乐平台

  • 首页
  • 信誉好的网络娱乐平台介绍
  • 产品展示
  • 新闻动态
  • 你的位置:信誉好的网络娱乐平台 > 新闻动态 > 【青鸟飞扬教育】什么是 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 事务日志等) 此处,你也必须为操作系统留出些内存

    发布于:湖南省

    信誉好的网络娱乐平台