Skip to content

alibaba/AliSQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98,296 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AliSQL Logo

AliSQL

Alibaba's MySQL Branch with DuckDB Analytics and Native Vector Search

Based on MySQL 8.0.44 and maintained by Alibaba Cloud Database Team

GitHub Stars GitHub Forks License MySQL Version

FeaturesQuick StartDocsRoadmapContributing

简体中文 | English

About AliSQL

AliSQL is an open-source MySQL branch maintained by Alibaba Cloud Database Team. This release is based on MySQL 8.0.44 and adds a DuckDB analytical storage engine, HNSW vector indexes, Native Flashback, and binlog optimizations while retaining the MySQL client protocol.

Analytics Reference Results

The included TPC-H SF100 results show more than 200x speedup over InnoDB for several queries in that test environment

Native Vector Indexes

The VECTOR(N) type and HNSW indexes support vectors with up to 16,383 dimensions

MySQL Client Compatibility

Applications connect through the MySQL protocol and continue to use MySQL clients and drivers

Key Features

Feature Description Status
DuckDB Storage Engine Columnar execution and storage for analytical tables, with automatic compression Available
Vector Index (VIDX) Native vector storage & ANN search with HNSW, supports COSINE & EUCLIDEAN distance Available
Native Flashback Query historical InnoDB data with AS OF TIMESTAMP and retained undo snapshots Available
Large TX Optimization Binlog Cache Free Flush reduces commit-time I/O amplification for large InnoDB transactions Available*
Binlog Durability Persist Binlog Into Redo V2 reduces synchronous binlog I/O while retaining crash recovery Available
DDL Optimization Instant DDL, parallel B+tree construction, non-blocking locks Planned
RTO Optimization Accelerated crash recovery for faster instance startup Planned

* Free Flush supports large InnoDB transactions. In this release, DuckDB registers an additional 2PC participant, so AliSQL builds that include DuckDB use normal binlog group commit. Large-transaction optimization for DuckDB will be added in the next release.

Quick Start

Option 1: Build from Source

# Clone the repository
git clone https://github.com/alibaba/AliSQL.git
cd AliSQL

# Build (release mode)
sh build.sh -t release -d ~/alisql

# Install
make install

Option 2: Set Up a DuckDB Analytical Node

Step-by-step guide: How to set up a DuckDB node

Initialize & Start Server

# Initialize data directory
~/alisql/bin/mysqld --initialize-insecure --datadir=~/alisql/data

# Start the server with DuckDB enabled for the example below
~/alisql/bin/mysqld --datadir=~/alisql/data --duckdb_mode=ON

Usage Examples

DuckDB for Analytics

-- Create an analytical table with DuckDB engine
CREATE TABLE sales_analytics (
    sale_date DATE,
    product_id INT,
    revenue DECIMAL(10,2),
    quantity INT
) ENGINE=DuckDB;

-- Run an analytical aggregation through DuckDB
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;

Vector Search for AI Applications

-- Vector features are disabled by default and vector indexes require RC.
SET GLOBAL vidx_disabled = OFF;
SET SESSION transaction_isolation = 'READ-COMMITTED';

-- Create a table with a vector column
CREATE TABLE embeddings (
    id INT PRIMARY KEY,
    content TEXT,
    embedding VECTOR(3)
) ENGINE=InnoDB;

INSERT INTO embeddings VALUES
    (1, 'first document', VEC_FROMTEXT('[0.1,0.2,0.3]')),
    (2, 'second document', VEC_FROMTEXT('[0.2,0.1,0.4]'));

-- Create HNSW index for fast ANN search
CREATE VECTOR INDEX idx_embedding ON embeddings(embedding) DISTANCE=COSINE;

-- Find similar items using cosine distance
SELECT id, content,
       VEC_DISTANCE_COSINE(
           embedding, VEC_FROMTEXT('[0.1,0.2,0.3]')
       ) AS distance
FROM embeddings
ORDER BY distance
LIMIT 10;

Build Options

Option Description Default
-t release|debug Build type debug
-d <dir> Installation directory /usr/local/alisql when writable; otherwise $HOME/alisql
-g asan|tsan Enable sanitizer (memory/thread) disabled
-c Enable code coverage (gcov) disabled

Prerequisites: CMake 3.x+, Python 3, GCC 7+ or Clang 5+

Roadmap

Q4 2025  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
         [x] DuckDB Storage Engine  [x] Vector Index (VIDX)   [x] 8.0.44 Release

2026     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
         [x] Native Flashback       [x] Transaction & Binlog   [ ] DDL / RTO
             - AS OF TIMESTAMP          - Binlog in Redo V2       - Instant DDL
             - Undo snapshots           - Free Flush               - Fast Crash Recovery

Documentation

Document Description
DuckDB Integration Guide Architecture, compatibility, replication, and performance reference
Vector Index Guide Native vector storage and ANN search
Native Flashback Guide Historical InnoDB queries and recovery
Binlog in Redo Guide Redo-backed binlog persistence and fallback rules
Binlog Cache Free Flush Guide Large-transaction commit path, configuration, and restrictions
Release Notes What's new in AliSQL 8.0.44
Setup DuckDB Node Quick setup guide for analytics

External Resources:

Alibaba Cloud RDS MySQL

Alibaba Cloud RDS MySQL provides managed versions of several AliSQL features. RDS manages engine releases, topology, data synchronization, backup, monitoring, and support. Supported versions and parameter defaults can differ from this repository; use the product documentation when operating an RDS instance.

Feature RDS MySQL product documentation
DuckDB analytical instances English / 中文
Vector storage English / 中文
Native Flashback English / 中文
Binlog Cache Free Flush English / 中文
Binlog in Redo English / 中文

The local feature guides note behavior that differs between this source tree and RDS MySQL.

Contributing

AliSQL has been open source since August 2016 and is actively maintained by Alibaba Cloud Database Team. The current 8.0.44 feature release continues that open-source line.

Bug reports, documentation fixes, and code changes are welcome.

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/my-change).
  3. Commit the change (git commit -m 'Describe the change').
  4. Push the branch (git push origin feature/my-change).
  5. Open a pull request.

For bugs and feature requests, please use GitHub Issues.

Related Tools

RDSAI CLI

RDSAI CLI Python 3.13+

RDSAI CLI is a command-line client for AliSQL and MySQL. It accepts natural-language requests for SQL generation, execution-plan analysis, and query diagnosis.

# Install
curl -LsSf https://raw.githubusercontent.com/aliyun/rdsai-cli/main/install.sh | sh

# Connect and ask in natural language
rdsai --host localhost -u root -p secret -D mydb
mysql> analyze index usage on users table
mysql> show me slow queries from the last hour
mysql> why this query is slow: SELECT * FROM users WHERE name LIKE '%john%'

Key features:

  • Natural language to SQL conversion (English/中文)
  • Query optimization and diagnostics
  • Execution plan analysis with Ctrl+E
  • Multi-model LLM support (Qwen, OpenAI, DeepSeek, Anthropic, etc.)
  • Performance benchmarking with automated analysis

Project and installation instructions

Community & Support

GitHub Issues

For bug reports & feature requests

Open an Issue

Alibaba Cloud RDS

Managed DuckDB analytical instances

Learn More

License

AliSQL is licensed under GPL-2.0, the same license as MySQL.

See the LICENSE file for details.

Star History

Star History Chart

Maintained by Alibaba Cloud Database Team

GitHubMySQLDuckDB

About

AliSQL is a MySQL branch originated from Alibaba Group. Fetch document from Release Notes at bottom.

Topics

Resources

License

Contributing

Security policy

Stars

5.8k stars

Watchers

470 watching

Forks

Packages

 
 
 

Contributors