Fork me on GitHub

比 MySQL 轻,比 SQLite 强:终于有人把 AI 数据库做对了

前几天,我看到了一个来自 Turso 创始人 Pekka 的观点:

SQLite 被认为是 AI agent 的理想数据库,因为它轻量级且适用于 AI agent 的各种场景,但仍然需要进化。

评论区里也有意思,有人会和大家分享自己为了 SQLite 的进化做了哪些事情(比如开源了 Super SQLite 之类的项目),也有人会推荐有哪些 SQLite 的进化版产品,并和大家讨论这些产品的优劣。

实际上,AI 应用开发者对轻量级数据库的诉求,远远不止 AI Agent 这一个场景。那些在 Web 时代和移动互联网时代支撑了万亿级应用的传统数据库,如今在面对 AI 应用的敏捷、轻量、高频迭代的需求时,都纷纷开始暴露出它们的水土不服。

除了传统数据库几个最明显的问题 —— 部署复杂度高、资源占用多、过度设计影响执行效率 以外,很多 AI 应用都会把数据和模型紧密结合,在设备端(如手机、物联网设备)实现本地化运行,传统数据库通过客户端远程连接服务器的模式,也无法满足这种嵌入式,甚至离线嵌入式的需求。

为了让 AI 开发者不浪费太多时间在与数据基础设施的搏斗上,而是能够专注于 AI 算法与应用逻辑本身。我们需要一种新型数据库,能够将自己从这种无谓的消耗中解放出来。

0x01. seekdb 的来龙去脉

OceanBase 刚开始只是负责淘宝和支付宝的各种交易支付相关业务,然后是各种银行和金融机构,接下来是从泛互联网行业扩展到各行各业,详见:《开源 4 年、打磨 15 年、300 万行代码的开源项目》

但在 AI 时代,对于开发者,类似于 SQLite 这种轻量级数据库的能力非常有限(向量能力和传统 SQL 能力难以兼得),而传统数据库又有部署复杂度高、资源占用多等问题。这两类数据库对于开发者来说,都不够友好。

因此,OceanBase 专门为 AI 时代的开发者,打造了一个开源免费、轻量易用、拥有强大 AI 搜索能力的数据库 —— seekdb。个人笔记本安装无压力,让大家只要有机器,就能跑 OB!

GitHub 地址:github.com/oceanbase/seekdb

0x10. seekdb 简介

seekdb 是 OceanBase 专门为开发者打造的一款开箱即用、轻量级的数据库产品,专注于为 AI 应用提供高效的混合搜索能力,支持向量、全文及多模数据的统一存储与检索,是构建 AI 应用的新选择。

seekdb 在继承了淘宝和支付宝背后的 OceanBase 数据库核心引擎高性能优势与 MySQL 全面兼容特性的基础上,通过深度优化数据搜索架构,为开发者提供了更符合 AI 应用数据处理需求的各项能力。

产品能力矩阵对比

特性 seekdb OceanBase Chroma Milvus MySQL 9.0 PostgreSQL + pgvector DuckDB Elasticsearch
嵌入式数据库
单机数据库
分布式数据库
MySQL 兼容
向量搜索
全文检索 ⚠️
混合搜索 ⚠️
OLTP
OLAP ⚠️
开源协议 Apache 2.0 MulanPubL 2.0 Apache 2.0 Apache 2.0 GPL 2.0 PostgreSQL License MIT AGPLv3+ SSPLv1+ Elastic 2.0

MySQL 8.0 移除了嵌入式能力

seekdb 的适用场景

  • RAG 应用:面向以智能聊天机器人、知识库、领域专家系统为代表的 RAG 场景,seekdb 支持了完整的 RAG Pipeline 解决方案。内置文档解析处理功能,集成向量嵌入(Embedding)、重排序(Rerank)及大语言模型(LLM),支持向量/全文/标量混合搜索,在一个数据库实例内实现 Doc In Data Out
  • AI 辅助编程:面向 AI 辅助编程场景,seekdb 支持对代码仓库构建向量和全文索引,基于代码关键词或代码语义,进行高效的代码搜索和生成补全。
  • AI Agent 平台类应用:面向 AI Agent 开发场景,seekdb 提供了快速启动和嵌入式部署能力,支持被快速拉起提供服务。提供高频增删改和实时查询能力,避免数据库性能瓶颈引起 AI 开发效率降低的问题。提供向量搜索、全文搜索及混合搜索特性和灵活的元数据管理能力,结合会话管理与记忆存储能力,无需再引入其他库就可快速构建 AI Agent。提供 MCP Server 组件,无缝接入 AI 生态。
  • 语义搜索引擎:面向以电商商品搜索和推荐、多媒体内容检索、图片搜索等语义搜索场景,seekdb 支持对接主流向量嵌入模型并提供了向量搜索能力。同时提供了 Hybrid Index 功能,支持基于文本查询条件进行语义搜索,对用户屏蔽向量嵌入和查询结果 Rerank 的复杂流程。
  • MySQL 应用现代化和 AI 化升级:seekdb 继承了 OceanBase 单机存储引擎、执行引擎、事务引擎、高级查询优化器的完整能力,高度兼容 MySQL,并在此基础上扩展 AI 能力。小规格可用于物联网边缘设备数据采集、小型应用开发和实验教学等场景,中大规格可用于各行业 OLTP、HTAP 或 AI 业务场景。

seekdb 的产品架构

  • 部署模式:支持 Client/Server 和嵌入式两种部署模式。嵌入式模式下可将 seekdb 直接集成进 Python 应用,便于进行个人开发。
  • 具有 ACID 事务语义的存储层:基于 LSM-Tree 架构的行存列存一体化存储引擎,自研高效的编码压缩机制降低存储成本。支持数据高频实时写入,和面向不同负载的高性能查询。
  • 多模数据与索引层:支持基础类型,向量、大文本、JSON 、GIS、Array 等多模数据类型,并提供高效的索引支持。包括 HNSW / IVF 向量索引及索引量化算法,覆盖多种分词器和查询模式的基于 BM25 相关性计算算法的全文索引,适用于语义搜索的混合索引,及 JSON 多值索引、主键和二级索引、GIS 索引等。
  • 支持混合负载的多模计算层:支持向量、全文、标量等条件的混合搜索。提供 AI Function 能力,实现库内实时推理。支持完整的 ACID 事务特性及基于 MVCC 的多版本并发访问能力,提供高级查询优化器和具备向量化执行能力的高效执行引擎。
  • 统一应用接口:兼容 MySQL 原生驱动,提供基于 SQL 的支持多模数据的统一查询语言。并在此基础上提供了面向开发者更加友好的向量库/混搜 SDK。适配 LangChain、LlamaIndex、Dify 等 AI 应用开发框架。提供 MCP Server,无缝接入 AI 生态。

seekdb 的核心特性

  1. 开箱即用,极速开发,易学易用:单点架构设计,无其他组件依赖。支持 yum、docker、windows/macos 桌面版部署以及原生 Python 嵌入式集成。
  2. 支持 1C2G 小规格,垂直弹性扩缩容:服务端 1 核 CPU + 2GB 内存即可跑 VectorDBBench Performance1536D50K。
  3. 高性能向量索引、全文索引,支持向量、全文、标量混合搜索
    • 向量搜索:支持高达 16,000 维向量存储,兼容 L2、内积、余弦相似度。
    • 全文搜索:基于 BM25 算法,提供 Space、Beng、Ngram、IK、Jieba 等多种分词器。
    • 混合搜索:一条 SQL 完成多路查询与重排序。
  4. 混搜场景升级,基于 Hybrid Index 指定文本也可进行语义搜索:只需写入文本数据,系统自动进行 Embedding 并生成向量索引,查询时仅需指定文本搜索条件。
  5. 无缝对接各类模型,内置 AI Function 实现库内实时推理:通过 DBMS_AI_SERVICE 系统包实现模型注册和管理。内置 AI_COMPLETEAI_PROMPTAI_EMBEDAI_RERANK 等函数。
  6. 基于 JSON 的动态 Schema:支持 JSON 数据类型及动态 Schema,提供 JSON 函数索引、多值索引。
  7. 数据实时写入,实时可查:基于 LSM-Tree,数据入库成功立即可查,同步构建各类索引。
  8. 兼容 MySQL 不止于 MySQL,支撑 HTAP 混合负载:深度兼容 MySQL 语法协议,一个实例同时支持联机交易和实时分析。

0x11. 快速部署 seekdb 体验环境

服务器配置要求详见官方文档:deploy-seekdb-testing-environment

1. 使用 yum install 快速部署

添加 seekdb 镜像源:

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo

安装 seekdb 和 obclient 客户端:

sudo yum install seekdb obclient

如果在启动前需要更改配置,可以直接修改 /etc/oceanbase/seekdb.cnf,配置项很少可按需修改。

建议 cpu_countmemory_limit 最好大于 1C2G,亲测 1C1G 也 No Problem。

# 示例配置
port=1234
base-dir=/var/lib/oceanbase
data-dir=/var/lib/oceanbase/store
redo-dir=/var/lib/oceanbase/store/redo
datafile_size=2G
datafile_next=2G
datafile_maxsize=50G
cpu_count=4
memory_limit=2G
log_disk_size=2G

启动与管理 seekdb:

# 启动 seekdb
sudo systemctl start seekdb

# 查看启动状态 (显示 Service is ready 即成功)
sudo systemctl status seekdb

# 连接 seekdb
obclient -h127.0.0.1 -uroot -P1234 -A oceanbase

# 停止服务
sudo systemctl stop seekdb

# 开机启动
sudo systemctl enable seekdb

2. 嵌入式安装

seekdb 提供了嵌入式部署方式,可以作为一个“库”运行在你的应用程序内部。

Python 示例

import seekdb

# Open a database
seekdb.open()

# Connect to a database
conn = seekdb.connect()

# Use the connection
cursor = conn.cursor()
cursor.execute("select version();")
results = cursor.fetchall()
print(results)

# Close the connection
conn.close()

运行结果

$ python3 sample.py
[('1.2.34-OceanBase NewProduct-v5.6.7.8',)]

3. 其他部署方式

除此之外,OB 官方还提供了 seekdb 的 Docker 镜像和桌面版管理工具,篇幅有限这里就不展开介绍了,感兴趣的同学可以移步文档查看(oceanbase.ai/docs)。

0xFF. 写在最后

回想去年,我第一次用 OceanBase 数据库做 RAG 应用,当时用 16GB 内存的 MacBook Pro 启动 OB 竟然还会因为内存不够而失败☹️,那时候的 OB 强大却略显“高冷”。

而 seekdb 的出现,让我有一种“士别三日当刮目相看”的感觉。OceanBase 从昔日“高不可攀”的金融级数据库,到如今“触手可及”的 seekdb,OceanBase 团队这次真正看懂了开发者在 AI 时代对数据库期望的样子:无痛的上手体验,不吃资源、配置简单、开箱即用,却依然强大可靠。

GitHub 地址:github.com/oceanbase/seekdb

现在的 seekdb 也许还不是“最终形态”,但它绝对是一个令人兴奋的起点,让我们一起见证这款“更懂 AI 的数据库”成长之路。

posted @ 2025-11-25 08:16  削微寒  阅读(686)  评论(0)    收藏  举报