ITPub博客

首页 > 数据库 > MySQL > 早就说了连接数别太多呀

早就说了连接数别太多呀

原创 MySQL 作者:xuexiaogang 时间:2023-08-13 20:04:20 0 删除 编辑

  本次场景是MySQL问题,有人问我监控显示, 表缓存使用率99%,当前为100.0%。这是为什么?

    这个需要执行下面的命令来检查。可以看到参数 table_open_cache 定义了缓存4000个,实际达到的 Open_tables是4000.这两个一个是variable,另外一个是状态status

    

一般来说,连接数据库以后use database以后会打开表(结构)缓存, Opened_tables(当前会话)新会话是0.use某个database以后,这个值会增加,目前是从0变到212

   

   有了这个认识以后,那么假设连接会话对相应的database进行use的话,那么缓存的表就是连接数乘以表的数量。只要关注连接数多的user以及他对应的database就行。


最多的连接用户分别是15和20,对应的表的数量分别是89和136.所以两个加起来基本是就是4000左右的样子。


其实数据库的连接数不是越多越好,很多都是闲置的浪费。其实数据库的连接数适当就好。(SQL质量低下,依靠连接数多是不能彻底解决的)。当然这里可以调整参数比如4000改到40000,让他多缓存一点。

案例主要还是说明他的原理。也告诉我们如果连接数很多,那么表的数量就不能多。通常MySQL的一个database下我个人建议不要超过50个表。

如果有人说我业务复杂要上千个表呢?那么你的场景不适合MySQL。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-2970034/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
OracleACE/PostgreSQLACE/阿里云MVP/腾讯云TVP/墨天轮 MVP/TiDBMVA/数盟会华东区长老/OpenTenBase社区委和技术委委员/架构师技术同盟名人堂成员上海地区理事会成员/if社区联合发起人/《DBA实战手记》作者/公众号:四海内皆兄弟

注册时间:2013-07-01

  • 博文量
    422
  • 访问量
    953269