我有一个1.9GB的MySQL innodb数据库,通过以下命令显示。
SELECT table_schema "Data Base Name"
, sum( data_length + index_length ) / 1 048 576
as "Data Base Size in MB"
, sum( data_free )/ 1 048 576
as "Free Space in MB"
FROM information_schema.TABLES
GROUP BY table_schema ;
+--------------------+----------------------+------------------+
| Data Base Name | Data Base Size in MB | Free Space in MB |
+--------------------+----------------------+------------------+
| database_name | 1959.73437500 | 31080.00000000 |
我的问题是:
这是否意味着如果我将innodb_buffer_pool_size设置为2GB或更大,整个数据库可以加载到内存中,因此需要更少的磁盘请求读取?
31GB的可用空间是什么意思?
如果可以将最大RAM分配给innodb_buffer_pool_size为1GB,是否可以指定哪些表加载到内存中,同时保持其他表始终从磁盘读取?
提前致谢。
答案 0 :(得分:7)
答案 1 :(得分:2)
show variables like 'innodb_data_file_path'
查看每个文件的大小。报告的可用空间是当前数据文件未使用的数量。在您的情况下,您有2gig数据存储在(最可能)32gig的InnodB数据文件中,剩下30gig可用。