mysql - MySQL 是否对外键进行自动索引?

标签 mysql indexing foreign-keys myisam isam

谁能告诉我 MySQL 是否自动为其外键建立索引?

我的 MySQL 正在使用 MyIsam 引擎。

最佳答案

MyISAM 根本不支持外键。来自manual :

For storage engines other than InnoDB, MySQL Server parses the FOREIGN KEY syntax in CREATE TABLE statements, but does not use or store it. ... At a later stage, foreign key constraints will be implemented for MyISAM tables as well.

这是针对MySQL 5.6,下一个版本,所以还没有实现。文本与旧版本完全相同。

这意味着根本没有使用外键结构。您可以在 CREATE TABLE 命令中指定它,但 MySQL 会默默地忽略它。不会从中创建索引,也不会存储它(因此 SHOW CREATE TABLE 命令将显示您试图创建外键)。

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

关于mysql - MySQL 是否对外键进行自动索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245273/

相关文章:

mysql - Kohana v3 ORM 基于不同表的 Select 和 Where 子句

PHP/mySQL : mysql_query with SELECT, 来源和地点

sql - Oracle:基于函数的索引选择性唯一性

python - gekko 中的变量索引

ruby-on-rails - 添加 :on_delete to already existing foreign_key in rails migration

SQL Server外键约束的好处

mysql - 使用Mysql 5.7使用NULL IS NULL OR条件语法进行慢速查询

php - 无法将大量数据导入数据库phpmyadmin

mysql - LIKE SQL 语法错误

MySQL 不对某些查询使用多列索引