如何在一个rails应用中使用2个数据库服务器?

问题描述 投票:0回答:1

我必须开发一个数据管理系统,这样我所有的数字信息(如pdf或docs)将扫描并存储在一个数据库中,数字文档的参考唯一密钥将与创建的用户信息一起保存在不同的数据库中。我已经创建了一个mysql数据库,用于存储创建的用户信息和文档相关信息。但要扫描和存储pdf数据作为数字记录,什么是最好的方式,我可以做第二个数据库?我可以使用不同的mysql数据库来做这个事情吗。会不会使程序运行缓慢?我想让应用程序在获取记录时运行得更快。或者只有一个数据库,有什么办法可以让它运行得更快? 我没有办法做到这一点。

mysql ruby-on-rails database ruby-on-rails-5
1个回答
2
投票

大多数处理扫描文档等内容的人都会把文档放到普通的网络服务器或CDN中,使用难以猜测(随机)的文件名,并把文件路径放到MySQL或任何他们使用的RDBMS中。

为什么呢,有几个原因。

  • RDBMSs并不擅长向用户传输二进制大对象(BLOBs)。普通的老式Web服务器则是。例如,Apache和Linux一起成长起来的,做这件事的效率惊人,nginx也不错。
  • 当扩大规模时,你不希望让你的RDBMS成为向用户传送这些内容的瓶颈,不管它是否是你用来做事务性事情的那个。
  • 一个简单的CDN只是一个Apache或nginx的Web文件服务器。但这些使用云厂商的网络几乎可以神奇地轻松扩展出来。在CloudSomething上花上几百美元,然后就可以在全球范围内使用了。

一个普通的文件服务型Web服务器就能很好地完成这个任务,直到你需要扩大规模。

安全性:做 命名你的文件 1.pdf, 2.pdf诸如此类。让他们真的很难猜到。以免你最终上了KrebsOnSecurity.com。

© www.soinside.com 2019 - 2024. All rights reserved.