# AliSQL
**Repository Path**: alibaba/AliSQL
## Basic Information
- **Project Name**: AliSQL
- **Description**: AliSQL is a MySQL branch originated from Alibaba Group. Fetch document from Release Notes at bottom.
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 10
- **Forks**: 0
- **Created**: 2024-10-31
- **Last Updated**: 2026-02-09
## Categories & Tags
**Categories**: database-service
**Tags**: None
## README
AliSQL
阿里巴巴企业级 MySQL 分支 - 集成 DuckDB OLAP 引擎与原生向量搜索
经阿里巴巴生产环境大规模验证,支撑数百万数据库实例稳定运行
特性 •
快速开始 •
文档 •
路线图 •
贡献
简体中文 | English
## 为什么选择 AliSQL?
AliSQL 为 MySQL 带来企业级能力,将 InnoDB 可靠的 OLTP 性能与 DuckDB 极速的分析能力和原生向量搜索相结合 - 全部通过熟悉的 MySQL 接口使用。
|
### 分析性能提升 200 倍
DuckDB 列式引擎相比 InnoDB,分析查询性能提升 **200 倍**
|
### 原生向量搜索
内置 HNSW 算法,支持高达 **16,383 维**向量,满足 AI/ML 工作负载
|
### 100% MySQL 兼容
使用现有的 MySQL 工具、驱动和 SQL - 零学习成本
|
## 核心特性
| 特性 | 描述 | 状态 |
|------|------|------|
| **DuckDB 存储引擎** | 列式 OLAP 引擎,支持自动压缩,专为分析场景设计 | 已发布 |
| **向量索引 (VIDX)** | 原生向量存储与 ANN 搜索,基于 HNSW 算法,支持余弦和欧氏距离 | 已发布 |
| **DDL 优化** | Instant DDL、并行 B+树构建、非阻塞锁机制 | 规划中 |
| **RTO 优化** | 加速崩溃恢复,缩短实例启动时间 | 规划中 |
| **复制增强** | Binlog 并行刷盘、Binlog in Redo、大事务优化 | 规划中 |
## 快速开始
### 方式一:从源码构建
```bash
# 克隆仓库
git clone https://github.com/alibaba/AliSQL.git
cd AliSQL
# 构建(release 模式)
sh build.sh -t release -d ~/alisql
# 安装
make install
```
### 方式二:搭建 DuckDB 分析节点
> **详细指南:** [如何搭建 DuckDB 节点](./wiki/duckdb/how-to-setup-duckdb-node-cn.md)
### 初始化并启动服务
```bash
# 初始化数据目录
~/alisql/bin/mysqld --initialize-insecure --datadir=~/alisql/data
# 启动服务
~/alisql/bin/mysqld --datadir=~/alisql/data
```
## 使用示例
### 使用 DuckDB 进行数据分析
```sql
-- 创建使用 DuckDB 引擎的分析表
CREATE TABLE sales_analytics (
sale_date DATE,
product_id INT,
revenue DECIMAL(10,2),
quantity INT
) ENGINE=DuckDB;
-- 执行复杂分析查询(比 InnoDB 快 200 倍!)
SELECT
DATE_FORMAT(sale_date, '%Y-%m') as month,
SUM(revenue) as total_revenue,
COUNT(*) as transactions
FROM sales_analytics
GROUP BY month
ORDER BY total_revenue DESC;
```
### 使用向量搜索构建 AI 应用
```sql
-- 创建包含向量列的表
CREATE TABLE embeddings (
id INT PRIMARY KEY,
content TEXT,
embedding VECTOR(768) -- 768 维向量
) ENGINE=InnoDB;
-- 创建 HNSW 索引以加速 ANN 搜索
CREATE VECTOR INDEX idx_embedding ON embeddings(embedding);
-- 使用余弦距离查找相似项
SELECT id, content,
COSINE_DISTANCE(embedding, '[0.1, 0.2, ...]') as distance
FROM embeddings
ORDER BY distance
LIMIT 10;
```
## 构建选项
| 选项 | 描述 | 默认值 |
|------|------|--------|
| `-t release\|debug` | 构建类型 | `debug` |
| `-d <目录>` | 安装目录 | `/usr/local/alisql` |
| `-g asan\|tsan` | 启用内存/线程检测器 | 禁用 |
| `-c` | 启用代码覆盖率 (gcov) | 禁用 |
**前置依赖:** CMake 3.x+、Python 3、GCC 7+ 或 Clang 5+
## 路线图
```
2025 Q4 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[x] DuckDB 存储引擎 [x] 向量索引 (VIDX) [x] 开源发布
2026 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[ ] DDL 优化 [ ] RTO 优化 [ ] 复制增强
- Instant DDL - 快速崩溃恢复 - Binlog 并行刷盘
- 并行 B+树构建 - 最小化 RTO - Binlog in Redo
- 非阻塞锁机制 - 大事务优化
```
## 文档
| 文档 | 描述 |
|------|------|
| [DuckDB 集成指南](./wiki/duckdb/duckdb-cn.md) | DuckDB 存储引擎完整使用指南 |
| [向量索引指南](./wiki/vidx/vidx_readme.md) | 原生向量存储与 ANN 搜索 |
| [发布说明](./wiki/changes-in-alisql-8.0.44.md) | AliSQL 8.0.44 新特性 |
| [搭建 DuckDB 节点](./wiki/duckdb/how-to-setup-duckdb-node-cn.md) | 快速搭建分析节点指南 |
**外部资源:**
- [MySQL 8.0 官方文档](https://dev.mysql.com/doc/refman/8.0/en/)
- [DuckDB 官方文档](https://duckdb.org/docs/stable/)
- [技术详解文章](https://mp.weixin.qq.com/s/_YmlV3vPc9CksumXvXWBEw)
## 参与贡献
AliSQL 于 2025 年 12 月正式开源,由阿里云数据库团队持续维护。
我们欢迎各种形式的贡献!
1. **Fork** 本仓库
2. **创建** 功能分支 (`git checkout -b feature/amazing-feature`)
3. **提交** 你的修改 (`git commit -m 'Add amazing feature'`)
4. **推送** 到分支 (`git push origin feature/amazing-feature`)
5. **发起** Pull Request
如有 Bug 反馈或功能建议,请通过 [GitHub Issues](https://github.com/alibaba/AliSQL/issues) 提交。
## 相关工具
### RDSAI CLI — AI 驱动的数据库助手
[RDSAI CLI](https://github.com/aliyun/rdsai-cli) 是新一代 AI 驱动的数据库命令行工具,让你可以用**自然语言**与 AliSQL 和 MySQL 数据库交互。AI 代理会帮你完成 SQL 生成、执行计划分析、诊断优化等工作。
```bash
# 安装
curl -LsSf https://raw.githubusercontent.com/aliyun/rdsai-cli/main/install.sh | sh
# 连接数据库,使用自然语言查询
rdsai --host localhost -u root -p secret -D mydb
mysql> 分析 users 表的索引使用情况
mysql> 显示过去一小时的慢查询
mysql> 为什么这个查询很慢: SELECT * FROM users WHERE name LIKE '%john%'
```
**核心功能:**
- 自然语言转 SQL(支持中英文)
- AI 驱动的查询优化与诊断分析
- 按 `Ctrl+E` 即时分析执行计划
- 多模型 LLM 支持(通义千问、OpenAI、DeepSeek、Anthropic 等)
- 自动化性能基准测试与分析报告
👉 **[立即体验 RDSAI CLI](https://github.com/aliyun/rdsai-cli)**
## 社区与支持
|
**GitHub Issues**
Bug 反馈与功能建议
[提交 Issue](https://github.com/alibaba/AliSQL/issues)
|
**阿里云 RDS**
托管的 DuckDB 分析型实例
[了解更多](https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/duckdb-based-analytical-instance/)
|
## 开源协议
AliSQL 采用 **GPL-2.0** 协议开源,与 MySQL 保持一致。
详见 [LICENSE](LICENSE) 文件。
## Star 趋势
由 阿里云数据库团队 精心打造
GitHub •
MySQL •
DuckDB