用途:为 MariaDB 提供确定性的索引设计指导,覆盖索引类型选择、复合索引列序、JSON 路径索引、降序与 IGNORED 索引管理,以及用 EXPLAIN 诊断慢查询。
主要能力:按引擎选型——InnoDB/Aria 默认 BTREE,MEMORY 支持 HASH 与 BTREE,MyISAM/Aria 支持 FULLTEXT 与 SPATIAL,InnoDB 自 10.0.5 起支持 FULLTEXT 与 SPATIAL;HASH 不适用于 InnoDB 用户表。复合索引遵循最左前缀规则,等值谓词按选择性从高到低前置,范围谓词放最后。JSON 路径需先建 VIRTUAL 或 PERSISTENT 生成列再索引,因 MariaDB 的 JSON 是 LONGTEXT 别名,不支持直接函数索引。降序索引需 10.8+,10.6/10.11 会静默忽略 DESC。IGNORED 索引(10.6+)用于上线前验证索引是否可删,关键字是 IGNORED 而非 INVISIBLE。
使用方式:用 CREATE INDEX / ALTER TABLE 建索引,配合 ALGORITHM=INPLACE、LOCK=NONE 在线变更;用 SHOW INDEX FROM t 审计冗余索引;用 EXPLAIN 确认 type、key 与 Extra 字段。
适用场景:新增索引、调试慢 WHERE/ORDER BY/JOIN、索引 JSON 路径、审计复合索引列序。
限制:FULLTEXT 最小词长依引擎而定(InnoDB 默认 3,MyISAM/Aria 默认 4);SPATIAL 要求几何列 NOT NULL;前缀索引不能作为覆盖索引;索引创建不支持 ALGORITHM=INSTANT。具体版本行为与系统变量以官方文档为准。