【问题标题】:Proper way to optimize a multi-DB web application优化多数据库 Web 应用程序的正确方法
【发布时间】:2023-04-10 07:37:02
【问题描述】:

我目前正在构建一个将同时使用两个数据库的 Web 应用程序。用户首先创建一个通用帐户,然后使用它在多个“服务器”上创建多个角色。 (把它想象成在 Facebook 上创建一个帐户,然后用它在其他网站上注册)。

我当前的数据库设置如下:

  • main_english
  • main_russian
  • server1
  • server2
  • server3

main_englishmain_russian 数据库包含以适当语言注册的用户的会话和一般帐户数据

server1server2 数据库处理英语用户创建的字符数据,而server3 处理俄语用户。

用户将每 5-10 秒左右更新一次表格。我的问题是,如何有效地处理使用多个数据库的问题?

到目前为止,我已经有了几个选择:

  1. 打开两个数据库连接:一个用于main_,另一个用于server, 但我听说打开它们相当昂贵。
  2. 修改所有 我的查询明确说明要从哪个数据库更新/选择数据 (该项目还很年轻,因此它不会是那个 痛苦)
  3. 修改我的 $db 类以具有 select_db() 语句 对于每个查询,在我看来,这既混乱又 效率低下。

有什么建议?也许我对为server 查询打开第二个连接反应过度了?

【问题讨论】:

  • 我会更担心处理跨数据库事务。或者这不是您的用例所关心的问题吗?
  • 谢谢,就我而言,这根本不会有任何问题,因为数据库彼此之间相当不独立。
  • 独立* 抱歉,我无法再编辑时才注意到错字。

标签: php mysql optimization mysqli query-optimization


【解决方案1】:

众所周知,MySQL 具有快速的连接处理能力,因此不太可能成为瓶颈。话虽如此,您可以查看 PDOmysqli 扩展中的持久连接。

在服务器访问和数据建模方面,如果不了解您的应用程序就很难说。 DB 从站如何考虑?复制延迟可以吗?

【讨论】:

  • 这些数据库相互之间是相当独立的。 server_ 没有变化,main_ 没有变化,反之亦然。我还不能说关于复制滞后的任何事情,因为我还没有真正尝试过任何东西,该项目处于其早期开发状态。
猜你喜欢
  • 1970-01-01
  • 2011-10-01
  • 2013-06-26
  • 1970-01-01
  • 2012-12-10
  • 2019-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多