gpt4 book ai didi

mysql - 带有远程数据库的 Rails 应用程序 - 我应该在应用程序中复制还是远程连接

转载 作者:行者123 更新时间:2023-11-29 13:57:46 25 4
gpt4 key购买 nike

我正在为客户构建一个新的 Rails 应用程序。他们已经有一个单独的 Rails 应用程序来管理用户(包含所有标准 Devise 字段),并且不想在两个应用程序中维护用户,这完全有道理。

我可以使用database.yml连接到他们的远程数据库以获取连接详细信息并在我的用户模型中建立_connection:。它可以工作,尽管有点慢(通过公共(public)互联网)。我担心依赖此远程数据库来查询大量内容会严重减慢我的应用程序的速度。我也无法与远程数据库进行连接。

我的想法是在我的应用程序中复制用户表,并有一个每隔几个小时(或更频繁)运行一次的 cron 作业,使我的表与“主表”保持同步。

有什么理由不这样做吗?从设计角度来看,这是一个糟糕的想法吗?

我应该提到我的数据库是postgres,远程数据库是mysql。我还开始阅读 DbCharmer gem ( http://dbcharmer.net/ ),但我还没有完全理解它。

--编辑:--

我还应该提到,我需要从远程数据库读取其他表,而不仅仅是用户表。

最佳答案

我建议在本地缓存他们的数据库,因此当您查找远程记录时,您可以在本地记录它(如果它远程存在),或者您在本地记录否定结果如果远程不存在 - 您缓存远程记录不存在的记录。请记住,缓存负面结果的时间要比缓存正面结果的时间短。

然后,您可以查看本地缓存,看看是否有足够新鲜的结果可以返回,并且仅在本地缓存结果过时或没有本地缓存​​结果时才查询远程结果。

这就是我个人的做法;我会缓存而不是复制和同步。不过,您当然可以通过定期将常用的内容预取到缓存中来组合这两种方法。

无需使用 Pg 进行本地缓存,您可以轻松使用 redis/memcached/其他任何东西(而且我是 Pg 开发人员,所以我并不完全偏向 Redis)。

关于mysql - 带有远程数据库的 Rails 应用程序 - 我应该在应用程序中复制还是远程连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15568306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com