在数据学中,如果我正在寻找一个没有出现在数据库中的键,我猜它总是会导致缓存未命中(即使整个数据库被缓存在对等内存中)。所以我猜这样的请求(寻找一个不存在的键)将总是命中后端DB (网络访问),并且不返回任何结果。这是正确的吗?
发布于 2016-11-07 22:14:23
根据我对数据内部结构的理解,当找不到元素时,应该没有必要与存储对话。
数据的覆盖索引以排序集的形式实现,查询引擎使用二进制搜索遍历这些索引。而二进制搜索的平均和最坏情况都是O(log ),所以通过搜索不在数据库中的元素不会对性能造成很大的影响。
查询(对等项)是否必须与存储对话与项是否存在于数据库中无关。当查询引擎遍历数据库时,必须将对等节点中不存在的任何段从存储加载到对等节点。
https://stackoverflow.com/questions/40434974
复制相似问题