【问题标题】:Slow read-only remote database慢速只读远程数据库
【发布时间】:2013-02-24 15:06:24
【问题描述】:

我有一个 PHP webapp,它必须访问一个远程只读数据库,该数据库恰好非常慢(每次查询 8-10 秒),问题是我对该数据库的缓慢无能为力,但是,我可以尽我所能来解决这个问题。数据库上的数据变化不大,可能一天一两次,每次查询都比较小,所以我们在考虑这些方案:

  1. 每天将远程数据库转储到本地数据库,问题是数据更改会延迟一天

  2. 为每个查询使用缓存,问题是数据库更改后的第一个查询总是很慢。

有人有其他想法吗?

【问题讨论】:

    标签: php mysql database web-applications


    【解决方案1】:

    如何使用选项 2,同时拥有一个定期更新缓存的 cron 作业(至少对于您最常访问的页面/搜索而言)?

    【讨论】:

    • 作为另一种选择,你可以试试这个产品,它也有一个免费的开源版本:gridgain.com
    • 你的意思是像复制?我不能在遥控器上写,甚至不能改变它的配置,我只能从中读取:(
    • 对不起,当我阅读您的问题时,我愚蠢地忘记了“只读”部分(即使它在标题中,duh - 这就是我试图回答太快的结果),因为您的这个问题听起来好像您有某种方式知道何时进行更新...我现在正在编辑我的答案...
    【解决方案2】:

    有没有可能添加选项

    3)。让慢数据库的维护人员来修复它,紧急吗?

    如果不是,我认为您可以采用 Matt B 的想法,但在本地处理它。

    2)。为每个查询使用(本地)缓存。每天两次,运行调用所有最常见查询的后端 cron 作业,以便您的本地数据“准备好”快速查找新内容。这样一来,如果您的用户正在执行需要调用“主”数据库的异常操作,那么他们应该很少受到延迟的影响。

    【讨论】:

    • 3) 这将是理想的,但这是不行的。
    • 2) 是的,cron 可以降低延迟,这是迄今为止最好的主意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2018-08-01
    • 1970-01-01
    相关资源
    最近更新 更多