我读过Oracle 11g has a results cache feature,我真的可以从中受益。但是,我的客户端有Oracle 10g。有没有明智的方法可以在由PHP / 5.2驱动的Web应用程序中模拟它,它通过ODBC连接到远程Oracle 10g服务器(使用Oracle的驱动程序,而不是Microsoft的驱动程序)。
这个想法是在通常返回小数据集的大型表上缓存复杂查询,并确保在基础表发生更改时丢弃缓存数据(不需要立即执行,可以接受一小时的延迟)。
我可以在Web服务器(而不是Oracle服务器)上安装新软件,如果需要,我可以切换到OCI8。
答案 0 :(得分:3)
您可以使用stale tolerated查看数据库中的实体化视图。
答案 1 :(得分:1)
memcached是一个选项。
但是你的客户需要升级到11g,因为10g支持在2011年7月31日结束,他们可以在2013年7月31日之前宣布扩展支持。 (此信息可能已更改)
答案 2 :(得分:0)
您可以使用11gR2的内存数据库缓存选项。它也适用于10.2.0.4。这是TimesTen采集的衍生产品,您可以使用它来定义应用程序服务器上的写入缓存。这允许非常快速的回报。它可以很好地扩展,将应用服务器与缓存网格服务器结合起来。在您的情况下,如果要扫描的数据集很大,则可以使用mviews。如果它只是复杂的,缓存将正常工作,即使对于经常修改的表也是如此。