首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无生锈柴油缓存

无生锈柴油缓存
EN

Stack Overflow用户
提问于 2020-05-20 08:29:33
回答 1查看 531关注 0票数 2

我使用MySQL作为我的数据库,用柴油检索数据。数据每秒钟从多个端点更新。问题是在使用柴油时,为了检索数据,我得到的结果已经过时了(可能是因为柴油端的缓存)。MySQL与SET GLOBAL query_cache_size = 0一起运行,因此DB服务器端没有活动缓存。

下面是我检索数据的代码的一部分:

代码语言:javascript
复制
pub struct Weather {
    pub id: u32,
    pub temperature: f32,
    pub datetime: NaiveDateTime,
}

pub fn {
    let timewindow = ... // A timewindow I set
    let results = weather.filter(datetime.ge(timewindow)).load::<Weather>(&db).unwrap();
    println("{:?}", results)
}

你知道我怎么能在柴油上停用缓存吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-16 13:55:32

柴油减少用于数据库交互的样板是使用Rust与数据库交互的最有效的方法,因为它对查询的抽象是安全的和可组合的。柴油提供了一个高级别的查询生成器,基本上可以在抽象过程中产生零开销,并且尝试运行查询和加载数据比C中快得多。因此,没有缓存可以导致这样的过时结果,而且它也不支持与SQL_NO_CACHE选项相关的查询。过时的结果似乎与多个其他点有关,如查询、使用或系统设置/设计,以及其他注释中的更新。

但是,如果您使用的是准备好的陈述,它们可以在重用您准备的相同语句的同时提高性能(通过以后对prepare_cached的调用,将缓存语句以供重用)。在这种情况下,您还可以使用设置特定连接将容纳的缓存准备语句的最大数量。 (在这种情况下,默认情况下),连接将容纳相对较少的缓存语句。

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

https://stackoverflow.com/questions/61908511

复制
相关文章

相似问题

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