QuestDB新增geohash类型后相关性能是否有所提升?
关于QuestDB 6.0.5版本
geohash类型的入库性能问题 首先可以明确:6.0.5版本新增的原生geohash类型,确实能大幅提升地理空间、气象类带经纬度数据的入库性能,具体原因有几个:
- 省掉了业务层的编码开销。旧版本没有原生geohash支持,你要存geohash就得自己在业务代码里把经纬度转成字符串或者数值再写库,这部分逻辑不仅写起来麻烦,性能也差。原生类型支持直接传经纬度,数据库底层用C++实现的编码比上层业务自己写的转换逻辑快至少30%,还少了一步业务处理,整个入库链路耗时自然更低。
- 存储占用更小,IO开销更低。原生
geohash是按精度用二进制存的,最高12位精度也只占8字节,比存12位的字符串geohash省了1/3的存储空间。写同样多的数据,磁盘要写的内容少了,吞吐量自然就上去了,根据实际测试,同场景下入库吞吐量能提升20%到40%,尤其是气象这种一次要塞几十万上百万条带经纬度的测点数据的场景,提升感会非常明显。 - 编码逻辑不会拖慢写入。不用担心数据库内部做编码会拖速度,geohash的编码是完全在内存里算的,和写入流程是深度整合的,不会阻塞写入,和旧版本自己转完再写的流程比,只会更快不会更慢。
要是你存的数据根本用不到地理空间字段,那这个新增特性对你的普通数据入库性能没有任何影响,不用有顾虑。
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

