Mysql打开文件引起的一个奇怪问题

    今天遇到一个奇怪的问题,后来发现和mysql打开文件有关。

遇到的奇怪问题

    我在159机器上安装了mysql,在159机器上连接mysql执行sql的速度是0.9s左右。
   但是我从186机器上连接159机器上的mysql执行,时间为5s多。 很是奇怪.(每次测试前我都是重启数据库、清理linux缓存

   如果是第二次查询,不管存本地159机器还是非本地的186机器,都是0.3s返回结果。
   数据库版本是5.5.41-tokudb-7.5.5。

 下面是非本地186机器上第一次的查询(查询前重启数据库,清理操作系统缓存):

 

下面是本地159机器的第一次查询(查询前重启数据库,清理操作系统缓存):


找到原因

    实验一

       1、先重启159机器上的mysql,并查看mysql打开文件数(目前为72个)

       

     2、在189机器上连接159mysql并执行表上查询(这里话费了4.39s

    

    3、查看159机器上mysql的打开文件数

  

   4、再次执行上面的需要5s多的SQL

  

  说明:从上面的实验看出,时间主要消耗在打开文件上。

   那本地连接后,为啥查询只需要0.9s呢?  继续实验看看

实验二

    1、重启159机器 mysql,查看mysql打开文件数

   

    2、本地连接mysql(本地第一次连接mysql时比较慢)

   

  3、查看159机器mysql打开文件数

 

  说明:从这个实验可以看出,mysql在本地连接时直接打开了文件。

        我自己还做了实验,是这样的,如果你本地直接连接mysql的某个db,他就打开那个db下的所有文件,其他db下的文件不会打开。

实验三

    1、重启159机器mysql,并查看mysql打开文件数

    

   2、从186机器上,连接159机器上的mysql下的pvd1库

  

  3、查看159机器上的mysql打开的文件数

 

说明:这个pvd1下相关的文件数有几百个,这个只多了一个。可以说明远程连接时没有去打开连接db下的所有文件。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值