InfluxDB的读写流程

本文探讨了数据库存储背景,指出B/B+树的优缺点,并重点介绍了InfluxDB作为时序数据库,如何利用TSM(基于LSM Tree)存储引擎优化大量随机写入性能。InfluxDB在写数据时同时写入cache和wal,确保数据安全,读数据时通过四级索引实现高效查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

数据库存储背景知识

传统数据库:B/B+树

B树与B+树的缺点

设计原型

InfluxDB写数据

InfluxDB读数据


数据库存储背景知识

数据库最基本的功能即是put和get,put即存储,get即查询。如果只是存储起来,直接写成日志就行。但因为后续还要快速的查询,所以需要考虑存储的结构。对于树型结构,理论上来说,二叉树查找速度和比较次数都是最小的,为什么不使用二叉树呢?

因为我们要考虑磁盘IO的影响,它相对于内存来说是很慢的。

什么是磁盘I/O?

以读I/O为例,即为控制器发出指令,要求从磁盘读取某些扇区的内容,指令一般通知磁盘开始的扇区位置,然后给出给出需要从该初始扇区往后读取的连续扇区个数。指明读/写,控制器发出的这种指令+数据即为一次I/O

而磁盘I/O必然会产生磁盘访问时间,磁盘访问时间由三部分组成,寻道时间Ts,旋转时间Tr,传输时间Tt。Ts的时间消耗占大头。

  • Ts:启动磁臂时间s与磁头移动n条磁道到I/O数据对应磁道的时间和。Ts=m*n + s。
  • Tr:初始扇区移动(旋转)到磁头所用的时间。
  • Tt:真正数据写入写出的时间。

传统数据库:B/B+树

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值