【发布时间】:2020-09-06 13:10:14
【问题描述】:
我使用 MySQL 作为我的数据库,并使用柴油来检索数据。数据每秒从多个端点更新。问题是在使用柴油检索数据时,我得到的结果已经过时(可能是由于柴油端的缓存)。 MySQL 使用SET GLOBAL query_cache_size = 0 运行,因此数据库服务器端没有活动缓存。
这是我检索数据的代码部分:
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)
}
您知道如何停用柴油机上的缓存吗?
【问题讨论】:
-
请提供一个minimal reproducible example 来显示异常行为。据我所知,柴油机本身没有缓存。
-
问题是我总是检索相同的结果,尽管当我观察数据库时结果已经被改变了。然后在 1-2 分钟后,我检索到新结果。之后,数据库中没有任何新内容。然后在 1-2 分钟后再次出现新结果,等等。
-
作为柴油机维护者之一,我可以肯定地告诉您:柴油机中没有用于查询结果的缓存,此查询仅返回柴油机从数据库中返回的那些数据.所以这要么是您的查询有问题,要么是一般设置问题。
-
有没有办法执行类似的操作:
SELECT SQL_NO_CACHE id, name FROM customer;? -
这样的事情只能通过原始的
sql_query来实现。
标签: caching rust rust-diesel