首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql内存表的大小不能超过2G。

问mysql内存表的大小不能超过2G。
EN

Stack Overflow用户
提问于 2015-06-01 21:09:49
回答 2查看 425关注 0票数 4

我已经将max_heap_table_size设置为5G (5368709120),但是我的内存表的大小不能超过2G。Mysql进程是64位,所以它有足够的内存,也有物理内存可用。但尽管如此,我还是得到了一个错误ERROR 1114 (HY000) at line 1: The table 'my_cache' is full

随着时间的推移,规模在增长:

代码语言:javascript
复制
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 i将max_heap_table_size增加到10G,并且工作正常,没有错误!

增长统计数据:

代码语言:javascript
复制
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

发生了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-12-27 09:35:40

  1. 运行show variables like 'max_heap_table_size'检查大小限制。
  2. 然后是set max_heap_table_size=xxxxxxx;
  3. 截断该表并在其上发出Alter,使该值对此表有效。truncate table table_name;,alter table table_name ENGINE=MEMORY;
  4. 最好在mysql配置文件中更改max_heap_table_size值,避免在mysql服务重新启动后取消更改。
票数 1
EN

Stack Overflow用户

发布于 2015-07-02 21:00:27

  • 内存表从不转换为磁盘表。为了确保您不会意外地做任何愚蠢的事情,您可以设置max_heap_table_size系统变量,使内存表具有最大的大小。对于单个表,还可以在CREATE语句中指定MAX_ROWS表选项。

珀科纳怎么说

下面是一个例子

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30583341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档