数据库整理
本文于 540 天之前发表,文中内容可能已经过时。
- 数据库
- 时序数据库
- 嵌入式数据库 DuckDB
- ClickHouse
- DolphinDB
- InfluxDB
- Druid
- kv数据库
- RocksDB
- Redis
- 关系型数据库
- mysql
- oracle
- 图数据库
- neo4j
- 向量数据库
- qdrant
- milvus
- warviate
DolphinDB
适合金融时序,不开源
具体说明
向量数据库
qdrant
相对比较轻量,但只支持单向量,rust编写,如果只是支持简单比较,是比较合适的。
比如视频需要对视频和音频都单独建立向量,但qdrant并不支持。
milvus
支持多向量,相对qdrant部署比较复杂。目前对素材库的处理,主要是对音频和视频做了向量化操作后,然后再比较相似度
KV数据库
RocksDB
比较适合 mq消费后处理去重的场景。
相比redis的优势
- 写性能极高LSM-Tree 的核心设计是顺序写。所有写入操作先写内存中的 MemTable,达到阈值后以 SSTable 文件的形式顺序落盘。没有随机写,没有原地更新——这对高吞吐写入场景极其友好。
- 读取有布隆过滤器加速每个 SSTable 文件都自带布隆过滤器,可以在访问前快速判断 key 是否可能存在。绝大多数重复消息在内存中被拦截,真正落到磁盘的读请求很少。
- 天然支持数据淘汰通过 TTL(Time To Live)机制,可以自动过期超出窗口期的数据,无需手动清理。
- 嵌入式、零依赖RocksDB 是一个库(提供 Java JNI 接口),不需要单独部署 Redis 或 MySQL 集群,运维成本极低。
劣势
当请求落到磁盘的时候,毛刺会比较多,不是太适合 平滑高性能的场景。