How*_*ard 5 mysql innodb linux ubuntu
我只是使用了很少的 InnoDB 表(例如小于 1MB),但是在 MySQL 启动期间,它说
InnoDB: Initializing buffer pool, size = 128.0M
Run Code Online (Sandbox Code Playgroud)
是不是说我用这么小的内存,服务器还是128M内存?
Rol*_*DBA 10
根据 MySQL 文档,在 MySQL 5.5 中,InnoDB 缓冲池默认设置为 128MB。
您可以显示有多少 InnoDB 缓冲池正在使用和保留,如下所示:
SELECT
BufferPoolUsed BytesUsed,
(BufferPoolUsed / power(1024,1)) UsedKB,
(BufferPoolUsed / power(1024,2)) UsedMB,
(BufferPoolUsed / power(1024,3)) UsedGB,
BufferPoolReserved BytesReserved,
(BufferPoolReserved / power(1024,1)) ReservedKB,
(BufferPoolReserved / power(1024,2)) ReservedMB,
(BufferPoolReserved / power(1024,3)) ReservedGB
FROM
(
SELECT
(A.num * B.num) BufferPoolUsed,
(A.num * C.num) BufferPoolReserved
FROM
(SELECT variable_value num FROM information_schema.global_status
WHERE variable_name='Innodb_page_size') A,
(SELECT variable_value num FROM information_schema.global_status
WHERE variable_name='Innodb_buffer_pool_pages_data') B,
(SELECT variable_value num FROM information_schema.global_status
WHERE variable_name='Innodb_buffer_pool_pages_total') C
) AA
;
Run Code Online (Sandbox Code Playgroud)
我在 Windows 的 MySQL 5.5.12 中将其设置为 256M。这是我的输出:
mysql> SELECT
-> BufferPoolUsed BytesUsed,
-> (BufferPoolUsed / power(1024,1)) UsedKB,
-> (BufferPoolUsed / power(1024,2)) UsedMB,
-> (BufferPoolUsed / power(1024,3)) UsedGB,
-> BufferPoolReserved BytesReserved,
-> (BufferPoolReserved / power(1024,1)) ReservedKB,
-> (BufferPoolReserved / power(1024,2)) ReservedMB,
-> (BufferPoolReserved / power(1024,3)) ReservedGB
-> FROM
-> (
-> SELECT
-> (A.num * B.num) BufferPoolUsed,
-> (A.num * C.num) BufferPoolReserved
-> FROM
-> (SELECT variable_value num FROM information_schema.global_status
-> WHERE variable_name='Innodb_page_size') A,
-> (SELECT variable_value num FROM information_schema.global_status
-> WHERE variable_name='Innodb_buffer_pool_pages_data') B,
-> (SELECT variable_value num FROM information_schema.global_status
-> WHERE variable_name='Innodb_buffer_pool_pages_total') C
-> ) AA
-> ;
+-----------+--------+----------+--------------------+---------------+------------+------------+------------+
| BytesUsed | UsedKB | UsedMB | UsedGB | BytesReserved | ReservedKB | ReservedMB | ReservedGB |
+-----------+--------+----------+--------------------+---------------+------------+------------+------------+
| 6864896 | 6704 | 6.546875 | 0.0063934326171875 | 268435456 | 262144 | 256 | 0.25 |
+-----------+--------+----------+--------------------+---------------+------------+------------+------------+
1 row in set (0.00 sec)
mysql>
Run Code Online (Sandbox Code Playgroud)
您可以在 MySQL 启动时设置此值。例如:
将其设置为使用 1G RAM
[mysqld]
innodb_buffer_pool_size=1G
Run Code Online (Sandbox Code Playgroud)
将其设置为使用 256MB 的 RAM
[mysqld]
innodb_buffer_pool_size=256M
Run Code Online (Sandbox Code Playgroud)
在my.cnf中更改后,必须重启mysql才能生效。