首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Federatedx引擎在MariaDB 10.6中非常慢,并且必须读取所有表才能得到前10行?

为什么Federatedx引擎在MariaDB 10.6中非常慢,并且必须读取所有表才能得到前10行?
EN

Database Administration用户
提问于 2021-08-14 18:06:44
回答 1查看 488关注 0票数 0

我正在尝试从一个MariaDB获得10行到另一个MariaDB。然而,它需要一分钟半。

我已经使用指向远程MariaDB的联邦引擎创建了表。包括所有的索引。

我尝试了以下几点,但没有成功:

  • 只得到5列
  • 同时使用插件联邦x和联邦
  • 获得10行包括索引日期在内的第一行,将执行时间减少到45秒。但还是很慢。

my.cnf在两面都有默认值:米舍尔德 datadir=D:/MARIADB/data port=3306 innodb page-size=65536 innodb_buffer_pool_size=7G字符集-server=utf8 8 event_scheduler=ON 客户端 port=3306 plugin=D:/MARIADB/lib/plugin

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-08-16 18:31:18

FInally,我发现了读取旧答案和分析服务器之间传输的信息量的问题:在联邦表中选择减慢

当您有federatedX表并直接运行select时,获得前10行(从table1限制10;选择*)。所有表都从主机服务器移动到远程服务器,在我的示例中,其大小为3GB (45秒x500Mbps= 25000 Mbit/8=3.12GBaprox),即表的总大小。移动所有表后,MariaDB目标将得到前10行,这使其效率低下:

解决办法是在WHERE语句中使用索引列(正如Verace建议的那样),如旧文章中所建议的那样。使用WHERE语句中的索引列,FEDERATEDX引擎只将索引中的寄存器从服务器移动到服务器。使用索引列,查询只需1.938秒,并在服务器之间移动一天的信息(在我的例子中为100 MB )。

从db.table1中选择* start_date='2021-07-14‘限制10

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/298063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档