首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发出一个SQL请求,该请求构建一个“结果缓存”而不返回结果

发出一个SQL请求,该请求构建一个“结果缓存”而不返回结果
EN

Stack Overflow用户
提问于 2013-03-15 19:15:24
回答 2查看 110关注 0票数 0

我有一个无状态的user服务器,它需要2组用户输入来进行计算:

第1页:获取输入A

第2页:获取输入B

第3页:计算结果表单用户输入A和B

碰巧我的应用程序中的瓶颈是与用户输入A相关的查找。

为了加快速度,我在A上发出SQL请求,而"Page 3“稍后会这样做,同时我等待用户输入B,这样当用户在”Page 2“上单击submit时,来自”data A“的查找结果已经被缓存(为不耐烦的用户节省了2-5秒)。

我的问题

有没有可能让我的SQL查询以这样一种方式进行,即服务器执行查询并缓存它,而不返回任何东西,因为我只需要它在缓存中,以使最终请求快2-5秒。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-15 19:31:29

如果结果不是很大,最好是将用户状态保存在服务器端会话中。

更新:

这是db存储会话适合的情况之一(多个web服务器vs单个db服务器)。

保存结果:

代码语言:javascript
复制
insert into temp_result (session_id, a, b)
select %(session_id)s, a, b
from t

检索它:

代码语言:javascript
复制
select a, b
from t
where session_id = %(session_id)s

当会话过期或超时后,将其删除。

票数 1
EN

Stack Overflow用户

发布于 2013-03-15 19:27:46

PostgreSQL没有结果缓存,所以你不能预热它。

它确实有一个磁盘缓存。要预热结果,可以只运行丢弃结果的SELECT语句。使用PL/PgSQL PERFORM语句、无意义的聚合等。搜索"postgresql预热缓存“可能是有用的。

您可能还想查看实例化视图。PostgreSQL还不支持物化视图,但是您可以使用触发器和脚本来模拟它们。添加物化视图支持的补丁也在开发中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15430953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档