简单聊聊innodb_buffer_pool_size


Innodb_buffer_pool_size

缓冲池:(用于缓存表和索引数据的)内存区域,以字节为单位默认值是128MB,最大值取决于cpu架构,在32位系统上最大值为2的32次方-1,在64位系统上大小为2的64次方-1。当缓冲池大小大于1GB时,将其设置 innodb_buffer_pool_instances大于1的值可以改善繁忙服务器上的可伸缩性.

较大的缓冲池需要减轻服务器的磁盘  I/O  才能多次访问同一表数据,在数据库的专用服务器 上,可以将缓冲池大小设置为计算机的物理内存的80%。

innodb_buffer_pool_size大小配置注意事项:

    1、物理内存竞争可能会影响操作系统中的页面调度

    2、InnoDB为缓冲区和控制结构保留额外的内存,以便分配的总空间比指定的缓冲池大10%

    3、缓冲池的地址必须是连续的,这在带有特定地址加载DLL的Windows系统上可能是一个问题(要想充分发挥innod的特性,Linux是个比较不错的选择)

    4、初始化缓冲池的时间大致与其大小成正比。在具有大缓冲池的实例上,初始化时间较长,为了减少初始化时间,您可以在服务器关闭或者重启时保存缓冲池的状态,并在服务器启动时将其恢复。

缓冲池大小必须始终等于innodb_buffer_pool_chunk_size * 或* 的倍数 innodb_buffer_pool_instances。如果将缓冲池大小更改为不等于innodb_buffer_pool_chunk_size * 或* 的倍数 innodb_buffer_pool_instances,则缓冲池大小将自动调整为等于innodb_buffer_pool_chunk_size * 或* 的倍数 innodb_buffer_pool_instances。

innodb_buffer_pool_size可以动态设置,可以在不重新启动服务器的情况下调整缓冲池的大小。该 Innodb_buffer_pool_resize_status 状态变量报告在线缓冲池大小调整操作的状态

由InnoDB_buffer_pool_size设置不当导致面板中数据库打不开的案例:

错误显示:如图


InnoDB错误.png (233.14 KB, 下载次数: 49)

下载附件

2020-2-12 20:33 上传

这个时候将数据库的配置文件中innodb_buffer_pool_size 大小设置成 128MB  重启数据库即可。


innodb参数.png (199.18 KB, 下载次数: 36)

下载附件

2020-2-12 20:34 上传


转自   https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=43956&extra=page%3D5%26filter%3Dtypeid%26typeid%3D10