大数据量的可扩展数据库方案和服务器选择

Scalable Database Plan and Server Selection for Big Amount of Data

我开始在一家初创公司工作,我打算在那里写后端。这是我第一次需要处理这个大项目,我想问几个问题,看看什么是最佳实践。我会先解释工作流程和信息,然后再征求您的宝贵意见。 该项目旨在将多家制药公司(最多 10 家)与许多(最多 20,000 家)药店连接起来。药店应该上传屏幕截图或 pdf 文件,我需要从这些文件中收集信息。每个药店可能最多上传 100 张屏幕截图和一些 pdf 文件,但他们可能会为不同的制药公司执行此过程。假设一家药房为公司 a、公司 b 和公司 c 上传了 100 个 ss 和 2 个 pdf,因此总共有 300 张图像和 6 个 pdf。此外,从 pdf 阅读或使用 ocr 系统获取图像需要时间。每个 pdf 将包含有关 50 种药物的信息(交易数据)。我会有毒品 Table 和交易 table。每种药物平均有 7 笔交易。我觉得交易 table 会在一段时间后变得很大,运行 查询那么大的 table 会很昂贵。 这是我的问题

1)我打算使用 MySQL,它是否足以满足我的目的?

2)我应该为每个公司建立一个单独的数据库,还是最好将所有内容都放在一个公司中。

3)实施药品和交易的最佳实践是什么 table。最简单的方法就是使用外键,但正如我所说,一段时间后交易 table 会很大,所以也许有更好的方法来计划它。

4)我应该使用专用服务器还是选择像 AWS.As 这样的服务?我说从 pdf 阅读或使用 ocr 需要时间。

5)哪个存储选项对于这个项目来说是合理的。同样,专用服务器或 AWS 存储等服务。

6)我看一个药品信息的时候,里面会有药品数据,也有7笔左右的交易。所以我需要为每种药物写入数据库 8 次。有没有更便宜的选择?

非常感谢您的回答:)

想MySQL:

  • 几千行是“小”;百万是“中型”。
  • 具有十亿行的 table 有一些挑战,但它是可行的。
  • 我最好的建议是计划在大约 4 个月内重写整个模式和代码。有了这个建议,您可以快速构建 something,然后了解为什么它不是最优的;然后重建它。
  • 根据需要使用尽可能多的 table。 (听起来您可能需要几十个。一千个 table 可能表明您做错了什么。)
  • 考虑将图像、pdf 等存储在文件中,而不是 tables。然后把文件路径放在一个table.

阅读 PDF 应该只进行一次,然后将 OCR 的结果捕获到文本文件(或 MEDIUMTEXT 列)。之后,您可以编写代码(有或没有SQL)来解析它并将重要数据复制到数据库中。 并且您可以在发现解析不充分时重做。