gpt4 book ai didi

database - 使用 Web 应用程序处理慢速数据库的策略

转载 作者:太空狗 更新时间:2023-10-30 01:57:10 24 4
gpt4 key购买 nike

我们正在努力找出在实时网站上处理慢速数据库的最佳解决方案。

基本的系统架构是这样的:

  • 慢(一些读取和大多数写入很快,其他需要几秒钟)Postgres 数据库。我们对此无法控制。
  • 访问 Postgres 数据库的独立离线系统。我们对此无法控制。
  • 可以访问 Postgres 数据库的快速内部服务器。我们可以为此服务器开发和安装软件。
  • 运行 LAMP 堆栈的快速网络服务器可能无法访问 Postgres 数据库,但可以访问内部服务器。我们可以为这个服务器开发软件。
  • 任何东西都可以访问的快速 MySQL 数据库。我们对此有完全的控制权。

我们正在开发一个新的网络应用程序,使用 Symfony 2 在网络服务器上运行。

我们最初的计划是创建一个 RESTful API 以放置在内部服务器上,供网络应用程序使用。我们面临的主要问题是 Web 应用程序的速度受到 Postgres 数据库速度的限制,这对用户来说是 Not Acceptable 。

有人知道解决这个速度问题的任何策略吗?

缓存是显而易见的解决方案,我们当然可以讨论数据需要多新,但在某些情况下,它必须绝对是最新的。例如,如果用户保存了一些更改,这些更改应该立即出现。我们考虑过让 API 拥有自己的快速数据存储,它可以从 Postgres 异步更新。然后我们可以在这个快速存储上执行所有读取,将写入提交给它和 Postgres。担心的当然是数据的一致性和系统复杂性的增加。

我们正在探索使用 JSON-LD 来表示数据,因为它非常适合我们正在使用的内容,并且使用一个标准,尽管是一个相对较新的标准,应该可以缓解 future 的任何重大架构变化,这很可能发生。由于它可以直接放入文档存储中,因此可能会简化流程。

我们的主要目标是:

  • 为用户提供良好的体验。
  • 创建一个易于维护且易于理解的系统。

欢迎提出任何建议!

最佳答案

我认为要问的主要问题是:为什么 Postgres 数据库这么慢?此外,根据您的解释,还不清楚所有这些系统在做什么以及依赖项/要求是什么。例如,需要PostgresDB 中的数据是最新的?那是主数据库吗?它是用于整体离线系统的集成数据库吗?

如果你不能改变缓慢的 Postgres 数据库,它必须是最新的,网站依赖它并且必须是最新的(在某些情况下),你有问题因为那是不可能的。如果 Postgres 数据库不需要最新,因为它只是被离线应用程序使用,您可以异步更新该数据库,并以能够提供必要性能的方式使用您的 MySQL 数据库。

鉴于您计划使用 JSON-LD,我很想听听更多关于您正在构建的系统的信息。你能分享更多信息吗?

关于database - 使用 Web 应用程序处理慢速数据库的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259969/

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