索引
索引有助于快速定位到满足查询条件的数据。具体来说,如果表中基于一些列构建了索引,那么查询时如果能用上这些索引,就不需要扫描全表,只需要读取部分数据,就能快速定位到满足条件的数据的位置,从而提高查询效率。StarRocks 提供了丰富的索引类型,主要分为以下两类:
- StarRocks 自动创建的索引,称为内置索引,包括前缀索引、Ordinal 索引、ZoneMap 索引。
- StarRocks 同时也支持用户手动创建索引,包括 Bitmap 索引和 Bloom filter 索引。
内置索引
前缀索引
数据写入时候自动生成前缀索引。具体来说,写入时数据按照指定的排序键排序,并且每写入 1024 行数据构成一个逻辑数据块(Data Block),在前缀索引表中存储一个索引项,内容为该逻辑数据块中第一行数据的排序列组成的前缀。 当查询的过滤条件命中前缀索引的前缀,则可以快速定位符合条件的数据,减少扫描的数据量,从而查询性能可以得到显著提升。