跨本地网络执行mysql查询的速度较慢

跨本地网络执行mysql查询的速度较慢,mysql,networking,Mysql,Networking,我在本地网络的mac mini服务器上设置了一个mysql数据库。当我以root用户身份从服务器查询数据库时,一切正常。然而,当我从本地网络上的另一台机器登录mysql时,我遇到了严重的问题,我执行了相同的查询 例如,表项有1831218行和两列,item和total没有索引。当我执行以下查询时,速度非常快: mysql> select * from items limit 10; +------+-----------+ | item | total | +------+----

我在本地网络的mac mini服务器上设置了一个mysql数据库。当我以root用户身份从服务器查询数据库时,一切正常。然而,当我从本地网络上的另一台机器登录mysql时,我遇到了严重的问题,我执行了相同的查询

例如,表项有1831218行和两列,item和total没有索引。当我执行以下查询时,速度非常快:

mysql> select * from items limit 10;
+------+-----------+
| item | total     |
+------+-----------+
| a    | 577846916 |
| b    | 489378579 |
| c    | 485798873 |
| d    | 476865689 |
| e    | 425954264 |
| f    | 399431640 |
| g    | 375218023 |
| h    | 325892006 |
| i    | 169948795 |
| j    | 116927132 |
+------+-----------+
10 rows in set (0.00 sec)
现在,通过从网络上的另一台机器远程登录:>mysql-host=192.168.2.2-u newuser-p,其中newuser对数据库具有select权限,我执行相同的查询,并获得完全不同的执行时间

mysql> select * from items limit 10;
+------+-----------+
| item | total     |
+------+-----------+
| a    | 577846916 |
| b    | 489378579 |
| c    | 485798873 |
| d    | 476865689 |
| e    | 425954264 |
| f    | 399431640 |
| g    | 375218023 |
| h    | 325892006 |
| i    | 169948795 |
| j    | 116927132 |
+------+-----------+
10 rows in set (7 min 3.10 sec)
这是一个非常糟糕的例子,并非总是发生,但一般来说,查询速度要慢得多,通常比服务器本身慢10-100倍或更多。对于这种速度的减慢,瓶颈似乎不太可能与网络中的延迟有关,而是一些导致mysql无法在服务器和各个节点之间良好通信的配置问题

除了验证这两台机器是否运行相同版本的mysql:mysql Ver 14.14 Distrib 5.6.19之外,对于osx10.7 x86_64,使用EditLine包装器,我不确定还需要验证哪些其他设置,以及还需要做些什么来修复此问题


如果有人有任何想法,请告诉我,谢谢

如果mysql引擎实际上在本地主机上运行,但数据在远程主机上运行,那么使用mysql和本地主机的-host选项来运行它。因此,以这种方式运行时所看到的查询时间缓慢是因为表中的所有1831218条记录必须通过网络从远程主机传输到远程主机,然后在远程主机上进行处理。与其这样做,不如用SSH将本地主机连接到远程主机,然后在远程主机上运行mysql,看看是否可以加快查询速度?首先,执行查询时不需要将表复制到节点,一般来说,通过网络发送的唯一数据就是查询的结果。其次,将SSHing放入服务器确实会加快查询的执行。虽然这通过加快查询执行速度解决了我的问题,但这并不是最理想的解决方案。原因是,对于各种mysql连接器(如python中的MySQldb模块),似乎没有相同的解决方法。我真的需要能够使用mysql中带有-host选项的标准连接来使用这些库。