gpt4 book ai didi

php - 每个客户端多个数据库与一个数据库的实用性

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

我将尝试使其尽可能简短,同时涵盖所有要点 - 我目前是一名 PHP/MySQL 开发人员。我和 friend 有一个移动应用程序的想法,我们将开始开发它。

我并不是说它会很棒,但如果它流行起来,我们将获得大量数据。

例如,我们的“客户”(由于没有更好的术语)会列出 100-250,000 种“产品”。假设最好的话,我们可以拥有数百个客户。

客户端将通过 Web 界面编辑数据,移动界面将仅调用 Web 服务器并返回 JSON(可能)。

我是一个从事CMS开发的低级人员,所以我不知道如何处理这个问题。我的问题或多或少是关于性能的;我在 MySQL 表中见过的最大大小是 340k,而且它已经有点慢了(当然它也不是最好的服务器)。

我无法想象一个拥有 4000 万行(并且有可能持续增长)的表运行良好。

我的计划是拥有一个“核心”数据库,其中包含“真实”数据库的名称,因此用户会进来并尝试访问客户端的数据,它将转到核心数据库并找出哪个数据库从中获取信息。我不关心数据分离或数据安全(这不是私有(private)信息)

最佳答案

是的,这是可能的,而且我的公司也做到了。不过,我当然不会说它很聪明。我们有SAAS营销自动化系统。一些客户的数据库有超过 100 万条记录。我们处理第二个“通用”数据库,该数据库有一个“履行”表,用于跟踪电子邮件、信件、电话等,包含超过 400 万条记录,以及许多其他非常大的共享表。通过适当的索引、优化、维护单独的仅数据库服务器以及可能的集群(我们还不需要这样做),您可以处理大量数据……在很多情况下,那些认为可以的人只以处理竞争产品上的几十万条记录为生。如果您仍然怀疑它是否有效,请考虑根据 MySQL 的集群指标,8 个服务器集群每秒可以处理 250 万次更新。一点也不破烂......

使用两个数据库的问题是处理多个连接。很难吗?不,不是真的。您可以创建不同的对象并根据所需的数据库引用连接类。在我们的例子中,我们点击主数据库的公司类来推断客户端数据库名称,然后基于该名称构建第二个连接。但是,当您来回处理这些连接时,可能会遇到需要额外调试的错误。这不仅仅是“我的查询有效吗?”但是“我真的得到了正确的数据库连接吗?”在我们的例子中,删除的 session 可能会导致引发各种 PDO 错误,因为系统无法再跟踪要访问的客户端数据库。另外,从可维护性的角度来看,尝试将表结构更新推送到 100 个不同的实时数据库是一个可怕的过程。是的,它可以自动化。但一旦出现失误,你就会撞倒很多人,并给自己带来大量额外的工作。现在,计算一下处理连接和推送更新所需的额外开发和测试......这将是您衡量是否值得的标准。

我的推荐?找到一台允许您将两台机器放在同一本地网络上的主机。我们选择了Linode,但你用谁并不重要。从专用数据库服务器开始,提前计划在必要时进行集群。将您的所有内容保存在一个数据库中,认真进行索引和优化。最后,找到一个非常好的数据库人员并善待他。有了这么多数据,就必须有一名优秀的 DBA。

关于php - 每个客户端多个数据库与一个数据库的实用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10920642/

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