seekdb 简介
11 月 18 日,在 OceanBase 2025 年度发布会上发布并开源了 OceanBase 首款 AI 原生混合搜索数据库 seekdb(简称 seekdb )。开发者仅需三行代码,即可快速构建知识库、智能体等 AI 应用,轻松应对百亿级多模数据检索,真正实现“开箱即用”的 AI 数据基座。
seekdb 是OceanBase专门为开发者打造的一款开箱即用的轻量级数据库产品,专注于为 AI 应用提供高效的混合搜索能力,支持向量、全文及多模数据的统一存储与检索,深度融合 AI 推理与数据处理,并兼容 Dify、Coze、LangChain、LlamaIndex 等 30 余种主流 AI 框架。这一产品实现了数据库从传统“业务支撑系统”迈向“AI 原生数据入口”的新功能,也是 OceanBase 自启动“Data x AI”战略以来的一份答卷。
seekdb 在继承了淘宝和支付宝背后的 OceanBase 数据库核心引擎高性能优势与 MySQL 全面兼容特性的基础上,通过深度优化数据搜索架构,为开发者提供了更符合 AI应用数据处理需求的各项能力。

产品能力矩阵
| 功能 | OceanBase seekdb | OceanBase 数据库 | MySQL 9.0 | Chroma | Elasticsearch | DuckDB | Milvus | PostgreSQL 和 pgvector |
|---|---|---|---|---|---|---|---|---|
| 嵌入式数据库 | 支持 | 不支持 | 不支持 (8.0 版本中移除了) | 支持 | 不支持 | 支持 | 支持 | 不支持 |
| 单机数据库 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| 分布式数据库 | 不支持 | 支持 | 不支持 | 不支持 | 支持 | 不支持 | 支持 | 不支持 |
| MySQL 兼容 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 |
| 向量搜索 | 支持 | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| 全文搜索 | 支持 | 支持 | 支持 | 不支持 | 支持 | 支持 | 部分支持 | 支持 |
| 混合搜索 | 支持 | 支持 | 不支持 | 不支持 | 支持 | 不支持 | 支持 | 部分支持 |
| OLTP | 支持 | 支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 支持 |
| OLAP | 支持 | 支持 | 不支持 | 不支持 | 部分支持 | 支持 | 不支持 | 支持 |
| 开源协议 | Apache 2.0 | MulanPubL 2.0 | GPL 2.0 | Apache 2.0 | AGPLv3 + SSPLv1 + Elastic 2.0 | MIT | Apache 2.0 | PostgreSQL License |
产品架构

官网链接
https://www.oceanbase.ai/
seekdb 部署
seekdb 提供了嵌入式和服务器部署模式,可以根据业务场景需要选择合适的部署模式。
-
嵌入式模式
seekdb 以轻量级库的形式嵌入您的应用,支持 pip 一键安装。适用于个人学习、快速原型开发,并可高效运行于多种端侧设备。 -
服务器模式
推荐用于测试及生产环境的部署模式,轻量易用,适合稳定高效地提供服务。
本文主要介绍在centos服务器上部署seekdb的过程。
环境说明:
| 主机名 | ip地址 | OS版本 | 内存、CPU | 数据库端口 |
|---|---|---|---|---|
| node1 | 192.*.*.60 | Centos7.9 | 2G 、 1个双核 | 2881 |
1、添加 seekdb 镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
执行过程如下:
[root@node1 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://mirrors.aliyun.com/oceanbase/OceanBase.repo
grabbing file https://mirrors.aliyun.com/oceanbase/OceanBase.repo to /etc/yum.repos.d/OceanBase.repo
repo saved to /etc/yum.repos.d/OceanBase.repo
2、安装 seekdb
yum install seekdb obclient
执行过程如下:
[root@node1 ~]# yum install seekdb obclient
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* c7-media:
* epel: mirror.math.princeton.edu
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
...
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
oceanbase.community.stable | 3.0 kB 00:00:00
oceanbase.development-kit | 3.0 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 253 kB 00:00:00
(2/4): oceanbase.development-kit/7/x86_64/primary_db | 111 kB 00:00:00
(3/4): oceanbase.community.stable/7/x86_64/primary_db | 344 kB 00:00:00
(4/4): updates/7/x86_64/primary_db | 27 MB 00:00:04
Resolving Dependencies
--> Running transaction check
---> Package obclient.x86_64 0:2.2.10-4.el7 will be installed
---> Package seekdb.x86_64 0:1.0.0.0-100000262025111218.el7 will be installed
--> Finished Dependency Resolution
epel/x86_64/group | 399 kB 00:00:00
Dependencies Resolved
=========================================================================================================================================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================================================================================================================================
Installing:
obclient x86_64 2.2.10-4.el7 oceanbase.community.stable 11 M
seekdb x86_64 1.0.0.0-100000262025111218.el7 oceanbase.community.stable 131 M
Transaction Summary
=========================================================================================================================================================================================================================================
Install 2 Packages
Total download size: 143 M
Installed size: 654 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/oceanbase.community.stable/packages/obclient-2.2.10-4.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID e9b4a7aa: NOKEY ] 4.2 MB/s | 23 MB 00:00:28 ETA
Public key for obclient-2.2.10-4.el7.x86_64.rpm is not installed
(1/2): obclient-2.2.10-4.el7.x86_64.rpm | 11 MB 00:00:04
(2/2): seekdb-1.0.0.0-100000262025111218.el7.x86_64.rpm | 131 MB 00:00:19
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 7.4 MB/s | 143 MB 00:00:19
Retrieving key from https://mirrors.oceanbase.com/RPM-GPG-KEY-OceanBase
Importing GPG key 0xE9B4A7AA:
Userid : "OceanBase"
Fingerprint: ef7d e8e3 6987 b60c acf9 9a53 2ff8 45a6 e9b4 a7aa
From : https://mirrors.oceanbase.com/RPM-GPG-KEY-OceanBase
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : obclient-2.2.10-4.el7.x86_64 1/2
execute pre install script
Installing : seekdb-1.0.0.0-100000262025111218.el7.x86_64 2/2
execute post install script
To configure OceanBase : edit /etc/oceanbase/seekdb.cnf
To start OceanBase : systemctl start seekdb
To enable OceanBase auto reboot : systemctl enable seekdb
To get more infomation : https://www.oceanbase.com/docs
Verifying : seekdb-1.0.0.0-100000262025111218.el7.x86_64 1/2
Verifying : obclient-2.2.10-4.el7.x86_64 2/2
Installed:
obclient.x86_64 0:2.2.10-4.el7 seekdb.x86_64 0:1.0.0.0-100000262025111218.el7
Complete!
3、启动 seekdb
systemctl start seekdb
执行过程如下:
[root@node1 ~]# systemctl start seekdb
[root@node1 ~]#
4、查看 seekdb 的启动状态
systemctl status seekdb
执行过程如下:
[root@node1 ~]# systemctl status seekdb
● seekdb.service - seekdb
Loaded: loaded (/usr/lib/systemd/system/seekdb.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2025-11-20 20:45:10 CST; 11min ago
Main PID: 2659 (observer)
Status: "seekdb is ready and running"
Tasks: 172
CGroup: /system.slice/seekdb.service
├─2659 /usr/bin/observer --base-dir=/var/lib/oceanbase --port=2881 --data-dir=/var/lib/oceanbase/store --redo-dir=/var/lib/oceanbase/store/redo --parameter datafile_size=2G --parameter datafile_next=2G --parameter dataf...
├─2824 /usr/bin/obshell daemon --base-dir /var/lib/oceanbase --seekdb
└─2830 /usr/bin/obshell server --base-dir /var/lib/oceanbase --seekdb
Nov 20 20:45:00 node1 systemd[1]: Starting seekdb...
Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Starting seekdb with command: /usr/bin/observer --base-dir=/var/lib/oceanbase --port=2881 --data-dir=/var/lib/oceanbase/store --redo-dir=/var/lib/oceanbase/store/redo --parameter ...
Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Configuration loaded from: /etc/oceanbase/seekdb.cnf
Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Change working directory to base dir. path='/var/lib/oceanbase/'
Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: The log file is in the directory: /var/lib/oceanbase/log/
Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: The observer will be started as a daemon process. You can check the server status by client later.
Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Start observer with --nodaemon if you don't want to start as a daemon process.
Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: SeekDB started successfully, starting obshell agent...
Nov 20 20:45:10 node1 systemd[1]: Started seekdb.
Hint: Some lines were ellipsized, use -l to show in full.
[root@node1 ~]#
5、连接 seekdb
mysql -h127.0.0.1 -uroot -P2881 -A oceanbase 或者 obclient -h127.0.0.1 -uroot -P2881 -A oceanbase
执行过程如下:
[root@node1 ~]# mysql -h127.0.0.1 -uroot -P2881 -A oceanbase
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221553929
Server version: 5.7.25 OceanBase 4.3.5.3 SeekDB (r1.0.0.0) (Built 100000262025111218-5343637512e28c346f938516af53b7879d4d5974 Nov 12 2025)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [oceanbase]> \q
Bye
[root@node1 ~]# obclient -h127.0.0.1 -uroot -P2881 -A oceanbase
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 3221553992
Server version: OceanBase 4.3.5.3 SeekDB (r1.0.0.0) (Built 100000262025111218-5343637512e28c346f938516af53b7879d4d5974 Nov 12 2025)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient(root@(none))[oceanbase]>
6、体验 SQL 基础操作
obclient(root@(none))[oceanbase]> select version();
+----------------------------------+
| version() |
+----------------------------------+
| 5.7.25-OceanBase SeekDB-v1.0.0.0 |
+----------------------------------+
1 row in set (0.001 sec)
obclient(root@(none))[oceanbase]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oceanbase |
| ocs |
| sys_external_tbs |
| test |
+--------------------+
6 rows in set (0.003 sec)
obclient(root@(none))[oceanbase]> create database db1 DEFAULT CHARACTER SET utf8mb4;
Query OK, 1 row affected (0.026 sec)
obclient(root@(none))[oceanbase]> use db1;
Database changed
obclient(root@(none))[db1]>
7、体验向量搜索
- seekdb 提供了存储、索引、搜索 Embedding 向量数据的能力,支持将向量数据与其他数据一起存储。
- seekdb 最高支持 16000 维的 Float 类型的稠密向量,支持稀疏向量,支持曼哈顿距离、欧式距离、内积、余弦距离等多种类型向量距离的计算,支持基于 HNSW/IVF 向量索引的创建,支持增量更新删除,同时增量更新删除操作不会影响召回率。
- seekdb 向量搜索具备带有标量过滤的混合搜索能力。同时提供灵活的访问接口,不仅支持通过 MySQL 协议各种语言客户端使用 SQL 访问,也可以使用 Python SDK 访问。同时也完成了对 AI 应用开发框架 LlamaIndex、DB-GPT 及 AI 应用开发平台 Dify 的适配,更好的服务于 AI 应用开发。
7.1 创建向量列和索引
创建表时,可以使用 VECTOR(dim) 数据类型声明指定列为向量列及其维度。向量索引需要创建在向量列上,且至少需要提供 type 和 distance 两个参数。
示例:创建t1表,包含向量列 embedding,向量数据维度为 3,并在 embedding 列上创建 HNSW 索引,指定距离算法为 L2。
CREATE TABLE t1(
id INT PRIMARY KEY,
doc VARCHAR(200),
embedding VECTOR(3),
VECTOR INDEX idx1(embedding) WITH (distance=L2, type=hnsw)
);
执行过程如下:
obclient(root@(none))[db1]> CREATE TABLE t1(
-> id INT PRIMARY KEY,
-> doc VARCHAR(200),
-> embedding VECTOR(3),
-> VECTOR INDEX idx1(embedding) WITH (distance=L2, type=hnsw)
-> );
Query OK, 0 rows affected (0.315 sec)
obclient(root@(none))[db1]>
7.2 写入向量数据
INSERT INTO t1
VALUES (1, '苹果', '[1.2,0.7,1.1]'),
(2, '香蕉', '[0.6,1.2,0.8]'),
(3, '橙子','[1.1,1.1,0.9]'),
(4, '胡萝卜', '[5.3,4.8,5.4]'),
(5, '菠菜', '[4.9,5.3,4.8]'),
(6, '西红柿','[5.2,4.9,5.1]');
本例仅使用了人工生成的 3 维向量,在实际应用中,需要使用嵌入模型对真实的文本进行生成,维度会达到数百或上千维。
执行过程如下:
obclient(root@(none))[db1]> INSERT INTO t1
-> VALUES (1, '苹果', '[1.2,0.7,1.1]'),
-> (2, '香蕉', '[0.6,1.2,0.8]'),
-> (3, '橙子','[1.1,1.1,0.9]'),
-> (4, '胡萝卜', '[5.3,4.8,5.4]'),
-> (5, '菠菜', '[4.9,5.3,4.8]'),
-> (6, '西红柿','[5.2,4.9,5.1]');
Query OK, 6 rows affected (0.019 sec)
Records: 6 Duplicates: 0 Warnings: 0
obclient(root@(none))[db1]> select * from t1;
+------+-----------+---------------+
| id | doc | embedding |
+------+-----------+---------------+
| 1 | 苹果 | [1.2,0.7,1.1] |
| 2 | 香蕉 | [0.6,1.2,0.8] |
| 3 | 橙子 | [1.1,1.1,0.9] |
| 4 | 胡萝卜 | [5.3,4.8,5.4] |
| 5 | 菠菜 | [4.9,5.3,4.8] |
| 6 | 西红柿 | [5.2,4.9,5.1] |
+------+-----------+---------------+
6 rows in set (0.003 sec)
7.3 执行向量搜索
进行向量搜索需要提供向量作为搜索条件。假设我们需要找到所有 ‘水果’,其对应的向量为 [0.9, 1.0, 0.9],则对应 SQL 为:
SELECT id, doc FROM t1
ORDER BY l2_distance(embedding, '[0.9, 1.0, 0.9]')
APPROXIMATE LIMIT 3;
执行过程如下:
obclient(root@(none))[db1]> SELECT id, doc FROM t1
-> ORDER BY l2_distance(embedding, '[0.9, 1.0, 0.9]')
-> APPROXIMATE LIMIT 3;
+------+--------+
| id | doc |
+------+--------+
| 3 | 橙子 |
| 2 | 香蕉 |
| 1 | 苹果 |
+------+--------+
3 rows in set (0.005 sec)
obclient(root@(none))[db1]>
还可以体验全文索引、混合搜索、AI 函数服务、语义索引、Cursor Agent + OceanBaseMCP 的 Vibe Coding 新范式,通过 Python SDK 体验嵌入式等等。。。
参考文档
https://www.oceanbase.ai/docs/zh-CN/
https://mp.weixin.qq.com/s/9-eFT9xhIt-dw-PhQhwWbw
关于作者
网名:飞天,墨天轮2024年度优秀原创作者,拥有 Oracle 10g OCM 认证、PGCE认证、MySQL 8.0 OCP认证以及OBCA、KCP、KCSM、ACP、YCP、磐维等众多国产数据库认证证书,目前从事Oracle、Mysql、PostgresSQL、磐维数据库管理运维工作,喜欢结交更多志同道合的朋友,热衷于研究、分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同探讨~~~




