我想知道一个复杂的查询(多个左连接、一些子选择和一些GROUP BY)在远程客户机中执行时是否比在本地客户机中执行慢得多。
我一直认为查询完全是在服务器上执行的,而且在广域网上只发送结果比在局域网上慢。
但是,一些几乎立即在本地执行的查询似乎在远程客户机中永远存在我正在使用Navicat,我通过一个正常的互联网连接访问服务器远程(20mbit向下,1Mbit向上)。
当查询执行时,客户端和服务器之间是否仍有一些交互?也许本地缓存比远程缓存快得多?!(以为缓存也发生在服务器端…)
更新:
刚刚在一个表上做了一个非常大的测试,这个表有500.000条记录,有几个子查询和组(查询用了700秒),在复杂的查询周围使用了SELECT COUNT,并且使用了SQL_NO_缓存,远程和本地用时完全相同。。。。我猜只是数据的发送太慢了。。。
最佳答案
不。只有传输的数据量和请求的数量才是一个因素。
Navicat可能正在使用一些元通信,比如运行一些小查询。