NONCLUSTERED 索引命令 (MySQL) 在 MySQL 或 Workbench 中不可用

Val*_*kyi 2 mysql indexing non-clustered-index

当我以简单的方式创建时index,一切正常:

create index qty_ix on vacancy_desc_to_words (qty);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试创建 时NONCLUSTERED INDEX,我遇到了问题: a WorkbenchnotMySQL console都不知道NONCLUSTEREDINCLUDE命令。


在此输入图像的描述


在此输入图像描述


Linux 下的 MySQL 版本:

mysql  Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using  EditLine wrapper
Run Code Online (Sandbox Code Playgroud)

问题:

如何使用NONCLUSTERED/INCLUDE命令?

Bil*_*win 10

您不需要指定索引位于NONCLUSTEREDMySQL 中,它是从表设计中隐含的。

只有 PRIMARY KEY 或第一个非 NULL UNIQUE KEY 可以是聚集索引,并且无需您选择它们​​都将是聚集索引。

表中的所有其他索引都是隐式非聚集索引。

我假设该表使用 InnoDB 存储引擎,这是默认的存储引擎。如果您使用其他存储引擎,规则可能会有所不同。例如,MyISAM 根本不支持聚集索引。

MySQL也不支持这个概念INCLUDEMicrosoft 那样的概念。仅包含为索引命名的列。

您应该记住,每个品牌的 SQL 数据库都有自己的功能和语法。SQL 标准中没有特别提及索引,因此 SQL 数据库供应商之间没有义务遵守任何一致的功能集。

因此,您应该熟悉所使用的数据库品牌的语法和功能,并且不要在未检查文档的情况下尝试在另一个品牌上使用一个品牌的功能。

https://dev.mysql.com/doc/refman/5.7/en/create-index.html