我已将max_heap_table_size
设置为5G(5368709120),但我的内存表的大小不能超过2G。 Mysql进程是64位,因此它有足够的内存,并且还有可用的物理内存。但尽管如此,我还是收到了错误ERROR 1114 (HY000) at line 1: The table 'my_cache' is full
随着时间的推移,规模会有所增长:
data_mb index_mb total
2048.00 1178.28 3226.28
2048.00 984.57 3032.57
2048.00 792.84 2840.84
1795.40 599.13 2394.53
1218.23 407.41 1625.64
665.04 221.68 886.71
有什么问题?
UPD 我将max_heap_table_size
增加到10G
并且它有效并且没有错误!
增长统计数据:
2048.00 1563.72 3611.72
2048.00 1370.00 3418.00
2048.00 1178.28 3226.28
2048.00 984.57 3032.57
2048.00 792.84 2840.84
1795.40 599.13 2394.53
发生了什么事?
答案 0 :(得分:0)
- MEMORY表永远不会转换为磁盘表。为了确保你不小心做任何愚蠢的事,你可以设置 max_heap_table_size系统变量在MEMORY上施加最大大小 表。对于单个表,您还可以指定MAX_ROWS表 CREATE TABLE语句中的选项
答案 1 :(得分:0)
show variables like 'max_heap_table_size'
以检查大小限制。set max_heap_table_size=xxxxxxx;
truncate table table_name;
,alter table table_name ENGINE=MEMORY;