【发布时间】:2017-03-11 19:29:01
【问题描述】:
“一个FEDERATED表不支持通常意义上的索引;因为对表数据的访问是远程处理的,实际上是远程表使用了索引。这意味着,对于不能使用任何索引的查询因此需要全表扫描,服务器从远程表中获取所有行并在本地过滤它们。无论此 SELECT 语句使用任何 WHERE 或 LIMIT ,都会发生这种情况;这些子句在本地应用于返回的行。
未能使用索引的查询因此会导致性能下降和网络过载。另外,由于返回的行必须存储在内存中,这样的查询也会导致本地服务器交换,甚至挂起。”
16.8.3 FEDERATED Storage Engine Notes and Tips
谁能解释我的例子是什么意思?
什么是“不能使用任何索引的查询”?
这意味着无论如何我都可以从远程服务器获取完整数据?
【问题讨论】:
-
一个不能使用任何索引的查询性能很慢。这个事实不需要任何例子。您的表包含的记录越多,获取结果的速度就越慢
-
是的,我知道这很慢。但在这种情况下,我想知道它会在哪里变慢 - 在远程端或本地端。我想知道什么是“不能使用任何索引的查询”。什么是不能?为什么不能?
标签: mysql federated-storage-engine