2013-02-24 56 views
0

我有一个PHP的Web应用程序,必须访问一个远程只读数据库,这恰好是死缓慢(每个查询8-10秒),问题是我不能做任何有关缓慢但是,我可以尽我所能解决这个问题。对数据库中的数据不会有太大变化,可能每天一次或两次,每次查询比较小,所以我们在思考这些选项:慢速只读远程数据库

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

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

有没有人有另一种想法?

回答

0

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

+0

正如另一种选择考虑,你可以试试这个产品,它也有一个免费的开源版本: http://www.gridgain.com/ – 2013-02-24 15:13:59

+0

你的意思是复制?我不能写在遥控器上,甚至改变它的配置,我只能从它读取:( – lalero 2013-02-24 15:20:17

+0

对不起,我读了你的问题时,我愚蠢地忘记了“只读”部分(即使它在标题中,呃 - 那是我试图回答得太快),因为你的问题听起来像你有某种方式知道什么时候正在发生更新......我正在编辑我的答案... – 2013-02-24 15:37:28

0

是否有任何添加选项的可能性

3)。急切地让缓慢数据库的维护者修复它?

如果不是,我认为你可以采用马特B的想法,但在本地处理它。 2)。为每个查询使用(本地)缓存。每天两次,运行一个后端cron作业,调用所有最常见的查询,以便您的本地数据“准备好”以快速查找新内容。这样一来,如果用户需要调用“主”数据库来做一些不寻常的事情,那么用户应该很少会受到延迟的影响。

+0

3)这将是理想的,但这是不行的。 – lalero 2013-02-24 21:44:58

+0

2)是的,克朗可以降低延迟,迄今为止最好的想法。 – lalero 2013-02-24 21:46:44