mysql 联合表问题

igetnqfo  于 2022-12-03  发布在  Mysql
关注(0)|答案(1)|浏览(128)

我使用FEDERATED引擎从远程服务器链接了一个名为 timesheet 的表。
该表包含以下字段:

  • 目标标识
  • ts_用户ID
  • ts_周末

如果我执行这个查询,结果是正确的,包括一个周末2022-11-27的记录:

SELECT * FROM timesheet WHERE ts_userid=123;

但如果我在WHERE子句中再添加一个条件,结果将为空。

SELECT * FROM timesheet WHERE ts_userid=123 AND ts_weekend='2022-11-27';

我尝试将 * timeheet * 表从远程服务器传输到本地服务器,所有查询都没有问题。
是否有办法解决联邦表的问题?

e4eetjau

e4eetjau1#

这与2016年报告的此漏洞的场景相匹配:https://bugs.mysql.com/bug.php?id=83851
我不会屏住呼吸等待修复。MySQL的联邦引擎很少得到关注。
联邦引擎最初的目的是支持高流量的写操作,而不是读操作。它是为以下情况开发的:应用程序连接到MySQL服务器,但单个服务器无法处理应用程序发送给它的INSERT的速率。瓶颈是慢速磁盘的I/O吞吐率。
如今,对于像NVMe和RAID这样的高性能存储,联邦引擎的作用是值得怀疑的。存储和跟得上INSERT的速率。更有可能的是,InnoDB软件无法以足够快的速度将行发送到存储,从而使I/O饱和。
如果您的应用程序需要从辅助MySQL示例读取数据,只需打开到该示例的第二个连接就可以了。

相关问题