暂无图片
MySQL某个连接断开后,内存不释放问题怎么处理?
我来答
分享
暂无图片 匿名用户
MySQL某个连接断开后,内存不释放问题怎么处理?
暂无图片 5M

MySQL某个连接断开后,内存不释放问题怎么处理?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
张sir

跟mysql用的内存分配器有关系,我以前也碰到过这种问题。

最后再来捋一下最初的疑问,为啥经常出现 MySQL 实际占用物理内存比 InnoDB_Buffer_Pool 的配置高很多而且不释放的现象?


其实多占用的内存大多都是被内存分配器吃掉了。为了更高效的内存管理,内存分配器通常都会占着很多内存不释放;当然还有另一部分原因是内存碎片,会导致内存分配器无法重新利用之前所申请的内存。


不过内存分配器并非永远不释放内存,而是需要达到某个阈值,它才会释放一部分内存给操作系统,个中原理则需要大家去源码中找了~


https://zhuanlan.zhihu.com/p/495251686

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL 索引使用有哪些注意事项呢?
回答 3
已采纳
索引哪些情况会失效查询条件包含or,可能导致索引失效如何字段类型是字符串,where时一定用引号括起来,否则索引失效like通配符可能导致索引失效。联合索引,查询时的条件列不是联合索引中的第一个列,索
oracle的用户状态,dba_users 系统表,在其他db中有类似的系统表来对应吗?
回答 1
一般都有的,MySQL里面的mysql.user
如何以最简单的方式将 MS excel 列转换为 mysql 列?
回答 1
复制到文本文件,使用loaddatainfile方式导入到mysql中
在mysql中,当子查询语句含有in或者exists关键字时会触发mysql内部查询转换成semi join,以下哪些属于semi join的策略?
回答 3
SEMIjoin简单来说就是外层的表的过滤依赖于内层的子查询语句作为过滤条件。MYSQL优化器为semi设置了如下几种的策略:DuplicateWeedoutstrategyFirstmatchStr
mysql中,一个普通表可以最多建立多少个分区呢?
回答 1
一个表最多1024个分区,5.7支持8196个分区
用哪些命令可以查看MySQL数据库中的表结构?
回答 3
已采纳
MySQL查看表结构命令,如下:desc表名;showcolumnsfrom表名;describe表名;showcreatetable表名;四种方式都可以,感觉回答的质量可以的话麻烦采纳一下哟
如何查询哪个用户有replication slave这个权限?
回答 1
要查询具有REPLICATIONSLAVE权限的用户,您可以使用以下SQL命令:SELECTUser,HostFROMmysql.userWHEREReplslavepriv'Y';这个查询会返回所有
MySQL突然访问不了数据库,出现unkwon,去mysql查看库不在,这是什么原因?
回答 4
已采纳
看看os系统层面这个库的文件夹还在不在。有可能被删除了。俗称删库。
MHA上有这个报错
回答 2
杀死对应监控集群主库MHA连接的会话(killxxx;)或者重启主库杀死对应监控集群主库MHA连接的会话即可,原理MHA在监控对应实例之前,会发起一个锁请求SELECTGETLOCK('MHAMast
MySQL trriger+cursor、loop是不是可以做到实时更新?
回答 1
可以详细描述下你的需求.一张表更新,另一张表也更新的话,触发器(trigger)就行.