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

我们正试图找出在实时网站上使用慢速数据库的最佳解决方案.

基本系统架构是这样的:

>慢(一些读取和大多数写入速度很快,其他写入需要几秒钟)Postgres DB.我们无法控制这一点.
>访问Postgres DB的单片离线系统.我们无法控制这一点.
>可以访问Postgres DB的快速内部服务器.我们可以为这台服务器开发和安装软件.
>运行LAMP堆栈的快速Web服务器可能无法访问Postgres DB,但可能访问内部服务器.我们可以为这台服务器开发软件.
>可以被任何东西访问的快速MySQL数据库.我们完全控制了这一点.

我们正在开发一个新的Web应用程序,以便使用Symfony 2在Web服务器上运行.

我们最初的计划是创建一个RESTful API,以便位于内部服务器上,该服务器由Web应用程序使用.我们面临的主要问题是Web应用程序的速度受到Postgres DB速度的限制,这对用户来说是不可接受的.

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

缓存是一个显而易见的解决方案,我们当然可以讨论数据当前的流程,但在某些情况下,它必须绝对是最新的.例如,如果用户保存了一些更改,则应立即显示这些更改.我们已经考虑让API拥有自己的快速数据存储,它可以从Postgres异步更新.然后我们可以对这个快速存储执行所有读操作,同时写入和Postgres.担心当然是数据的一致性和系统的复杂性增加.

我们正在探索使用JSON-LD来表示数据,因为它非常适合我们正在使用的数据,并且使用标准虽然相对年轻,但应该可以缓解未来的任何重大架构变化,这很可能会发生.由于它可以直接放入文档存储中,因此可能会简化该过程.

我们的主要目标是:

>为用户提供良好的体验.
>创建一个易于理解且易于理解的系统.

任何建议或建议都是最受欢迎的!

最佳答案 我想要问的主要问题是:为什么Postgres DB这么慢?同样根据您的解释,尚不清楚所有这些系统正在做什么以及依赖/要求是什么.例如,需要PostgresDB中的数据是最新的吗?那是主DB吗?它是单片离线系统的集成DB吗?

如果你不能改变缓慢的Postgres数据库,它必须是最新的到分钟,网站依赖它,必须达到分钟(在某些情况下),你有一个问题因为赢了’是可能的.如果Postgres DB不需要最新,因为它只是由离线应用程序使用,您可以异步更新该数据库并以一种为您提供必要性能的方式使用MySQL数据库.

鉴于您打算使用JSON-LD,我希望了解有关您正在构建的系统的更多信息.你能分享更多信息吗?

点赞