gpt4 book ai didi

mysql - 对于复杂的情况选择哪种数据库类型(关系型/NoSQL 和哪种类型)

转载 作者:行者123 更新时间:2023-11-29 21:39:43 24 4
gpt4 key购买 nike

对于我们的一项 SaaS 服务,我们正在研究使用哪个数据库,因为我们正在从头开始重新设计它。

我们当前的解决方案使用 MySQL 并为每个新客户创建一个单独的数据库。当前(全局)结构是:

- globaldb.globaltable
=> some global data shared with all customers
=> big
=> it would be an option to flatten this data in the customerdb.tablewithreportlines, but this increases the size quite a bit

- customerdb.tablewithstaticdata
=> joins with `globaltable`
=> searched on several columns
=> no group by
=> writes throughout the day, in the thousands
=> reads on request by the customer via the application, so not continuesly
=> can be big per customer, serveral GBs

- customerdb.tablewithreports
=> searched on several columns
=> writes throughout the day, but only in the tens
=> reads on request by the customer via the application, so not continuesly
=> quite small

- customerdb.tablewithreportlines
=> joins with `tablewithreports`
=> joins with `globaltable`
=> most columns are 'searchable'
=> most columns are 'groupable'
=> writes throughout the day, in the thousands but only when processing the `tablewithreports` lines
=> reads on request by the customer via the application, so not continuesly
=> can be big per customer, serveral GBs

customerdb 数据永远不会更新,而只会插入(偶尔会删除)。

我们正在为快速增长做准备,并需要一个为此做好准备的结构。手动添加新实例(如果需要)是可以接受的。

我们之前为测试项目设置了一个包含大量表(和数据库)的 MySQL。该项目失败了,因为服务器超出了 MySQL 表的最大文件处理程序数。大约有+-500.000张 table 。这个新项目肯定需要能够接待 500,000 名顾客,因此需要容纳 150 万张 table (按照当前的结构)。

每个客户数据库的平均大小为 +- 7.5Mb。没有太多,但它相当普遍,因为一些客户的数据库中有多个 GB。

我在 SO 和 Google 上进行了搜索以找到匹配的情况,但没有找到。

目前,我们愿意接受任何建议,无论是关系建议、NoSQL 还是组合建议,因为我们正在进行全面重新设计。

问题最适合此用例的数据库是什么?

PS:这是我的第一篇文章,所以请原谅我的不完整

最佳答案

我建议考虑为所有客户使用通用数据库。这从根本上减少了表的数量。

数据库管理系统并不是为如此大的数据库或表而设计的。

通常,表是表示同类对象集合的一个实体。因此,所有同类对象(例如您的案例中的客户)应放置在一个表中,而不是为每个客户提供一个单独的表。

关于mysql - 对于复杂的情况选择哪种数据库类型(关系型/NoSQL 和哪种类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637696/

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