对于一个项目,我们正在与几个外部合作伙伴合作。对于这个项目,我们需要访问他们的 MySQL 数据库。问题是,他们做不到。他们的数据库托管在托管环境中,在那里他们没有太多的配置可能性。他们不想让我们访问他们的所有数据。所以他们提出的解决方案是联合存储引擎。
我们现在为他们数据库的每个表都有一个表。问题是,我们获得的数据量是巨大的,未来甚至会增加。这意味着在我们的数据库上执行了很多插入操作。我们的最佳解决方案是拦截所有传入的 MySQL 流量,对其进行处理,然后将其批量存储。我们还考虑过使用 redis 之类的东西来存储数据。
此外,我们计划从不同的合作伙伴那里获得更多数据。他们可能会以不同的方式为我们提供数据。因此,使用 redis 可以让我们将所有数据集中在一个地方。
将数据存储在 mysql 数据库中后将数据复制到 redis 不是一种选择。我们只是无法处理那么多插入,我们需要尽可能快的数据。
TL;DR 有没有办法伪装成 MySQL 服务器,这样我们就可以直接处理通过联合存储引擎接收到的数据?
我们还考虑将黑洞引擎与我们这边的二进制日志结合使用。所以传入的数据只会写入二进制日志,不会存储在数据库中。但是性能仍然会受到磁盘 I/O 的限制。