怎么设置Mysql的内存表大小

怎么设置Mysql的内存表大小,第1张

内存表有大小限制,内存文件超过 my.ini 中设置以后,会自动转换部分到硬盘。内存表所占内存以固定的大小分配空间,即使一个表中只有一条记录,也可能占几M空间。内存表是有大小限制的,在 my.ini 中可以设置,当内存大小达到限制时,可能会报错:#1114: The table ‘XXX’ is full 。上面是我实际遭遇到的,但是 my.ini 中有下面这段:

# Maximum size for internal (in-memory) temporary tables. If a table

# grows larger than this value, it is automatically converted to disk

# based table This limitation is for a single table. There can be many

# of them.

tmp_table_size=13M

MYSQL库中单表的大小尽可能控制在多大?多实例,几个实例合适?

请问:MySQL库中单表的大小尽可能控制在多大?采取这种表大小限制的策略的原因是什么?一个MySQL服务器实例中,表的数量有限制吗?单个MySQL服务器实例中,表的大小的总和有限制吗?如果有,考虑的原因是什么?单台PC SERVER上建多个MySQL服务器实例,一般的实例数是多少?是基于什么样的考虑原因?

MySQL数据库分库后,我们的建议单表大小控制在10G以下。限制分拆以后的表的大小有几个好处:

1、表比较小的话,DDL *** 作更快。由于MySQL部分DDL *** 作需要锁表,所以表越小,锁表的时间就越短。

2、表越小,数据查询访问的速度越快。MySQL是B树结构,表越小,树的分层越少,IO也会比较少。

3、表越小,最终扩容到MySQL的实例数越多。将数据拆分得越散,数据分布越均匀,扩容的话,能够用更多的服务器来承担并发压力。

建议MySQL服务器的配置:2路6核cpu、192G内存,配有8块SSD或者PCIe Flash卡。这样一台服务器上一般是部署4-8个数据库实例,

mysql的内存表的大小在my.cnf文件中有定义,需要通过修改配置来修改临时表的大小限制:

[mysqld] 

##内存表容量 

max_heap_table_size=1024M 

##临时表容量 

tmp_table_size=1024M 

在mysql配置文件的mysqld节点下,max_heap_table_size指定的是内存表的最大内存,而tmp_table_size指定的是临时表的最大大小。

以上是如何修改mysql临时表内存表的大小限制的内容,更多 临时 大小 内存 限制 修改 如何 MySQL 的内容,请您使用右上方搜索功能获取相关信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8525593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存