【发布时间】:2021-02-22 20:24:10
【问题描述】:
我注意到 Rust 迭代器在某种程度上类似于 SQL 查询。由于我不熟悉 SQL 也不熟悉它的优化(尽管我熟悉查询确实有大量优化),Rust 或任何其他语言有没有办法优化迭代样式过滤器的编译时间?例如,
struct City {
population: u64,
name: String,
}
fn heavy_computation_criteria(population: u64) -> bool {
unimplemented!();
}
fn main() {
let cities = vec![ ... ];
let matches = cities
.iter()
.filter(|city| heavy_computation_criteria(city.population))
.filter(|city| city.population > 1000)
.map(|city| city.name);
}
类似于
SELECT name FROM cities WHERE population > 1000 AND cities.heavy_computation_criteria(cities.population)
我想 SQL 会首先通过人口而不是繁重的计算标准进行过滤。 rust里面有这样的优化方法吗?
【问题讨论】:
-
你是在问 Rust 是否可以或可以重新排序这些过滤器?或者您是在问如何设计一个这样的系统?
-
我都在问,我应该澄清一下。我想知道 rust 是否可以/已经做了这样的优化,如果不能,这样的系统将如何在高层次上实现
标签: database optimization rust query-optimization