MySQL是否为外键自动编制索引?

Key*_*lia 1 mysql indexing myisam foreign-keys isam

任何人都可以告诉我MySQL是否自动索引其外键?

我的MySQL正在使用MyIsam Engine.

Emi*_*röm 6

MyISAM根本不支持外键.从手册:

对于InnoDB以外的存储引擎,MySQL Server在CREATE TABLE语句中解析FOREIGN KEY语法,但不使用或存储它....在稍后阶段,还将为MyISAM表实施外键约束.

这适用于下一版本的MySQL 5.6,因此尚未实现.旧版本的文本完全相同.

这意味着根本不使用外键构造.您可以在CREATE TABLE命令中指定它,但MySQL会默默地忽略它.将不会生成任何索引,也不会存储它(因此SHOW CREATE TABLE命令不会显示您尝试创建外键).

如果需要外键支持,请考虑使用InnoDB存储引擎.InnoDB自动为外键创建索引.