跳转到内容

低维度索引的意义

之前说过建立索引应该在维度高的列创建。如性别和年龄,那年龄的维度就高于性别。性别这样的列不适合创建索引,因为维度过低。利用这个字段去查询的话无法进行有效的过滤。索引也就没了意义。

但维度低列就一定不建立索引了吗?答案是否定的。

如果当前维度低的列数据项数量相差较大。建立索引是有意义的。因为它搜索时可以有效过滤大量数据。

在某些任务表中,有 wait,done以及 fail 3 个状态。表中大部分数据都是 done 和 fail。少量数据为 wait。这时候通过索引进行 wait 查询时候,效率会大大提升。

这种一般在任务表中比较多,比如任务表中有状态,两种情况:INIT和SUCCESS,大多数情况下,任务都是 SUCCESS的,只有一少部分是INT,这时候就可以给这个字段加索引。这样当我们扫描任务表执行任务的时候, 还是可以大大提升查询效率的。