首页 > 解决方案 > MariaDB 中的多列索引在 MySQL 中是否也存在此属性?

问题描述

根据MySQL 文档,如果我有一个多列索引,那么该索引也会自动用作该索引中任何左前缀列的索引。文档中的示例说,

假设一个表具有以下规范:

CREATE TABLE test (
    id         INT NOT NULL,
    last_name  CHAR(30) NOT NULL,
    first_name CHAR(30) NOT NULL,
    PRIMARY KEY (id),
    INDEX name (last_name,first_name)
);

name索引是对last_namefirst_name列的索引。该索引可用于查询中的查找,这些查询指定已知范围内的值组合last_namefirst_name值。它也可以用于只指定一个last_name值的查询,因为该列是索引的最左边的前缀(如本节后面所述)。

这个问答也解释了同样的事情:https ://stackoverflow.com/a/48827874/473792

MariaDB中的多列索引也有这个属性吗?我知道 MariaDB 是从 MySQL 分叉出来的,但我不确定这个相对深奥的细节在两个引擎中是否相同。

标签: sqlindexingmariadb

解决方案


由于MariaDB 文档引用了 MySQL 5.7 InnoDB 版本编号,因此 5.7 中的所有功能都应该在 MariaDB 10.2 或更高版本中。

此外,本教程提出了一个类似的问题,这让我相信它是 InnoDB 行为方式的固有部分。


推荐阅读