【问题标题】:Creating one database per Client in MySql在 MySql 中为每个客户端创建一个数据库
【发布时间】:2011-07-23 19:15:21
【问题描述】:

我们有一个与财务相关的应用程序,我们在其中为每个客户(公司)创建一个数据库(模式)。单个客户端将有很多行。

我想知道最好将数据分开(就像现在一样)还是合并。我们正在为每台服务器寻找超过 10000 个数据库。

即使不是所有用户都会同时在线购买 10% 的用户我会很容易同时在线。

我的问题是.. 1)保留多个数据库是否存在任何严重问题(性能方面)。 2) 对于公司的财务数据,保存不同的数据库是常见的做法吗?

【问题讨论】:

    标签: mysql database performance finance


    【解决方案1】:

    “每台服务器 10000 个数据库” - 有很多数据库! [假设每个 DB 有 5 个用户,并且 10% 的活跃用户仍然是每台服务器 5000 个活跃用户连接]

    暂且不说:您最关心的可能是每个客户数据库的安全性。将它们分开将更容易管理安全性。

    回答您的问题:

    1. 不,有多个数据库不存在性能问题(除了服务器正在处理的大量事务)。事实上,在持有行范围锁方面可能会提高性能。

    2. 是的,通常的做法是为财务数据保留单独的数据库。安全性,备份通常在每个公司孤岛中处理得更好。

    【讨论】:

    • 我是否正确地说这取决于服务器,至于它们的性能?不过,我会同意 Mitch 的观点,这取决于您打算如何管理安全性,以及您打算如何访问它们,等等。
    • 安全是在应用程序状态下处理的,只有拥有所有权限的单个用户才能访问数据库。应用程序决定连接哪个数据库的地方只有一个,因此我们需要担心安全性的地方。而且应用程序开发很容易,因为我不需要担心其他公司的数据会被选中(在 SQL 查询中)。我唯一担心的是,由于大量的连接和数据库,性能会降低多少。
    猜你喜欢
    • 2011-03-31
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    相关资源
    最近更新 更多