跨本地网络执行缓慢的mysql查询

时间:2014-08-01 15:14:23

标签: mysql networking

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

例如,表items包含1,831,218行和两列itemtotal(未编入索引)。当我执行以下查询时,预期非常快:

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具有数据库的选择权限,我执行相同的查询并获得截然不同的执行时间。

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, for osx10.7 (x86_64) using EditLine wrapper之外,我不确定要验证的其他设置以及尝试解决此问题的其他方法。

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

0 个答案:

没有答案