logo头像
Snippet 博客主题

数据库整理

本文于 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的优势

  1. 写性能极高LSM-Tree 的核心设计是顺序写。所有写入操作先写内存中的 MemTable,达到阈值后以 SSTable 文件的形式顺序落盘。没有随机写,没有原地更新——这对高吞吐写入场景极其友好。
  2. 读取有布隆过滤器加速每个 SSTable 文件都自带布隆过滤器,可以在访问前快速判断 key 是否可能存在。绝大多数重复消息在内存中被拦截,真正落到磁盘的读请求很少。
  3. 天然支持数据淘汰通过 TTL(Time To Live)机制,可以自动过期超出窗口期的数据,无需手动清理。
  4. 嵌入式、零依赖RocksDB 是一个库(提供 Java JNI 接口),不需要单独部署 Redis 或 MySQL 集群,运维成本极低。

劣势

当请求落到磁盘的时候,毛刺会比较多,不是太适合 平滑高性能的场景。