PostgreSQL 物联网黑科技 - 瘦身500倍的索引(范围索引)
在数据库中用得最多的当属btree索引,除了BTREE,一般的数据库可能还支持hash, bitmap索引。 但是这些索引到了物联网,会显得太重,对性能的损耗太大。 为什么呢? 物联网有大量的数据产生和入库,入库基本都是流式的。在使用这些数据时,基本是FIFO,或者范围查询的批量数据使用风格。 btree索引太重,因为索引需要存储每条记录的索引字段的值和寻址,使得索引非常庞大。 另一方面,物联网的大量范围查询和批量处理用法决定了它不需要这么重的索引。 例子: 如下所示,btree索引的空间占比是非常大的。 postgres=# \dt+ tab List of relations Schema | Name | Type | Owner | Size |