怎样才能控制mysql占用内存的最大值?

一个正在减肥的胖子 2011-01-10 12:40:09
我的mysql在运行时,内存和虚拟内存一直在慢慢增加。
使用的全部是myisam表
show status;
出来的结果
连接数一直是3


数据库的插入删除动作比较频繁

请问各位大侠,如何才能控制器内存不要一直慢慢增加?
...全文
851 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这指的是内存吗? 那虚拟内存如何控制呢?
rucypli 2011-01-10
  • 打赏
  • 举报
回复
innodb引擎占用内存空间innodb_buffer_pool
myisam占用空间key_buffer_size
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mr_mablevi 的回复:]
除了这个肯定还有其他地方用到内存的,向一般的查询.更新这些.都需要;楼主现在要想的办法是如何节省,而不是如何去不用内存..
[/Quote]

我觉得是如何回收内存。我的服务器需要做到24*365的运行,再怎么节省,也会有内存耗尽的时候。
发现内存虽然会回收一点点,但总体趋势还是向上涨的。
这就不符合我的要求了。

如何让mysql及时回收内存呢?
oraclemch 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 haihun666 的回复:]
我的mysql在运行时,内存和虚拟内存一直在慢慢增加。
使用的全部是myisam表
show status;
出来的结果
连接数一直是3


数据库的插入删除动作比较频繁

请问各位大侠,如何才能控制器内存不要一直慢慢增加?
[/Quote]

你的dml比较频繁,那你们对一致性要求高不高呢?如果高的话,建议用innodb吧!
小小小小周 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 haihun666 的回复:]
你的意思是说,涨key_buffer_size后就不会再涨了吗?
[/Quote]

除了这个肯定还有其他地方用到内存的,向一般的查询.更新这些.都需要;楼主现在要想的办法是如何节省,而不是如何去不用内存..
zuoxingyu 2011-01-10
  • 打赏
  • 举报
回复
select @@key_buffer_size + @@query_cache_size + @@tmp_table_size
+ @@max_connections * (
@@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size
+ @@join_buffer_size + @@binlog_cache_size + @thread_stack
) ) / 1024/1024;

结果是的单位是M。
增长到这个数量后就不会再增长了。


  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rucypli 的回复:]

innodb引擎占用内存空间innodb_buffer_pool
myisam占用空间key_buffer_size
[/Quote]

你的意思是说,涨key_buffer_size后就不会再涨了吗?
小小小小周 2011-01-10
  • 打赏
  • 举报
回复
虚拟内存就是采用硬盘来对物理内存进行扩展,将暂时不用的内存页写到硬盘上而腾出更多的物理内存让有需要的进程来用。当这些内存页需要用的时候在从硬盘读回内存。这一切对于用户来说是透明的。这应该由不得自己控制吧,通常在Linux系统说,虚拟内存就是swap分区;楼主用vmstat 查看试试

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧