我的mysql在运行时,内存和虚拟内存一直在慢慢增加。
使用的全部是myisam表
show status;
出来的结果
连接数一直是3
数据库的插入删除动作比较频繁请问各位大侠,如何才能控制器内存不要一直慢慢增加?

解决方案 »

  1.   

    innodb引擎占用内存空间innodb_buffer_pool
    myisam占用空间key_buffer_size
      

  2.   

    虚拟内存就是采用硬盘来对物理内存进行扩展,将暂时不用的内存页写到硬盘上而腾出更多的物理内存让有需要的进程来用。当这些内存页需要用的时候在从硬盘读回内存。这一切对于用户来说是透明的。这应该由不得自己控制吧,通常在Linux系统说,虚拟内存就是swap分区;楼主用vmstat 查看试试
      

  3.   


    你的意思是说,涨key_buffer_size后就不会再涨了吗?
      

  4.   

    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。
    增长到这个数量后就不会再增长了。
      

  5.   


    你的dml比较频繁,那你们对一致性要求高不高呢?如果高的话,建议用innodb吧!
      

  6.   


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