Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Innodb缓冲池大小变量与Innodb状态中的缓冲池大小不匹配_Mysql_Buffer_Innodb - Fatal编程技术网

Mysql Innodb缓冲池大小变量与Innodb状态中的缓冲池大小不匹配

Mysql Innodb缓冲池大小变量与Innodb状态中的缓冲池大小不匹配,mysql,buffer,innodb,Mysql,Buffer,Innodb,最近我尝试将innodb缓冲池大小增加到8GB,但在我的innodb状态下,池大小看起来与之前配置的值类似(在我的情况下为500MB) 但这就是innodb状态所显示的 mysql> show variables like 'innodb_%'; +---------------------------------+------------------------+ | Variable_name | Value | +

最近我尝试将innodb缓冲池大小增加到8GB,但在我的innodb状态下,池大小看起来与之前配置的值类似(在我的情况下为500MB)

但这就是innodb状态所显示的

mysql> show variables like 'innodb_%';
+---------------------------------+------------------------+
| Variable_name                   | Value                  |
+---------------------------------+------------------------+
| innodb_additional_mem_pool_size | 52428800               | 
| innodb_autoextend_increment     | 8                      | 
| innodb_buffer_pool_awe_mem_mb   | 0                      | 
| innodb_buffer_pool_size         | 8589934592             | 

有谁能告诉我造成这种差异的原因吗?

您看到的数字是错误的

分配的总内存9576946034

使用
innodb\u buffer\u pool\u size
设置:

InnoDB为缓冲区和控制结构保留了额外的内存,因此分配的总空间大约比指定的大小大10%


缓冲池大小
是页数。

您应该与
显示引擎InnoDB状态中的
分配的总内存
值进行比较输出

InnoDB缓冲池的使用情况可以通过SHOW GLOBAL STATUS(如“InnoDB\u Buffer\u Pool\u pages\u%”命令来衡量。数据、杂项和自由页面的总和等于总页面数。总页数乘以Innodb_页面_大小对应于Innodb_缓冲区_池_大小

Innodb\u buffer\u pool\u pages\u data
Innodb\u buffer\u pool\u pages\u misc
+
Innodb\u buffer\u pool\u pages\u free
)=
Innodb\u buffer\u pool\u pages\u total

Innodb\u buffer\u pool\u pages\u total
*
Innodb\u pages\u size
=
Innodb\u buffer\u pool\u size

显示引擎InnoDB状态
输出:

您可以看到Innodb分配的总内存(有时比您预期的要高)、在附加内存池中分配的内存量(因此您可以检查其大小是否正确)、缓冲池中的总页数、可用页数、数据库页和脏页分配的页数。通过这些值,您可以了解缓冲池的大小是否合适——如果您经常有大量空闲页面,这可能意味着您的活动数据库大小小于分配的缓冲池大小,因此您可以对其进行调整。即使空闲页面为零(在本例中为零),数据库页面也不会等于缓冲池的总大小,因为缓冲池还存储锁信息、自适应哈希索引和一些其他系统结构

mysql> show variables like 'innodb_%';
+---------------------------------+------------------------+
| Variable_name                   | Value                  |
+---------------------------------+------------------------+
| innodb_additional_mem_pool_size | 52428800               | 
| innodb_autoextend_increment     | 8                      | 
| innodb_buffer_pool_awe_mem_mb   | 0                      | 
| innodb_buffer_pool_size         | 8589934592             |