无名商城论坛

搜索
查看: 211|回复: 0

[其他技术] 【梅开二度】简单聊聊innodb_buffer_pool_siz

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 17:18:19 | 显示全部楼层 |阅读模式
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设置不当导致宝塔面板中数据库打不开的案例:

错误显示:如图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表