基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
索引
更新时间:2026-08-14 11:03:20
索引是提高查询性能的关键组件。Database AI 支持多种索引类型,用于加速等值/范围查询、全文检索、JSON 集合查询、向量相似度搜索与分析型扫描等。
索引分类
索引的分类可从数据分布、存储格式和索引结构三个维度来理解。
按数据分布分类
索引数据分布决定索引分区与基表分区的对应关系:
- 局部索引:索引分区与基表分区一一对应、绑定存储。
- 全局索引:索引与基表分区独立,可跨分区组织。
按存储格式分类
索引存储格式决定索引表自身的数据组织方式:
- 行存索引:索引按行组织,利于点查与随机访问。
- 列存索引:索引按列组织(通过
WITH COLUMN GROUP (each column)等语法指定),利于分析型扫描与聚合,适用于 HTAP 场景下的宽表扫描和分析型查询,能显著提升大规模数据下的检索与分析性能。
详见 列存 与 创建索引(MySQL 模式)— 列存索引。
按索引结构分类
在上述两个维度的基础上,按索引结构可分为以下几类:
- B-tree 索引(普通索引):默认的索引结构,包括 唯一索引、非唯一索引 和 函数索引,适用于等值查询、范围查询、排序和点查。B-tree 索引既可以是局部索引或全局索引,也可以采用行存或列存格式——列存格式的 B-tree 索引即常说的列存索引,适用于 HTAP 场景下的分析型扫描。详见 索引简介、创建索引(MySQL 模式)、列存。
- 全文索引:基于倒排索引与分词,对
CHAR/VARCHAR/TEXT列建立关键词映射,适用于日志分析、文档检索与相关性排序。仅支持局部索引。详见 全文索引。 - JSON 多值索引:可在 JSON 数组或集合上创建索引,提高 JSON 数组元素搜索的查询效率,适用于标签分类、多对多关联及
MEMBER OF()、JSON_CONTAINS()、JSON_OVERLAPS()等谓词(仅 MySQL 模式)。仅支持局部索引。详见 多值索引 与 创建索引(MySQL 模式)。 - 空间索引:用于地理空间数据与 GIS 场景,可快速检索坐标范围内的数据。仅支持局部索引。
- 向量索引:在 Vector 类型列上建立,包含稠密向量索引(如 HNSW、IVF)与稀疏向量索引,支持 L2、内积、余弦等距离计算,适用于向量相似度检索。具有独立的索引结构,仅支持局部索引。详见 向量索引概述。
实践指引
- AP 场景下的列存索引、行存基表 + 列存索引等组合:参见 AP 场景下的数据表设计与查询优化实践 中的 HTAP 场景下优化查询。
- 全文索引、JSON 多值索引、空间索引、向量索引等特殊索引选型:参见 JSON 多值索引与全文索引实践。
- 更多语法与实现细节:参见 索引简介。