外键和索引

时间:2017-03-05 19:18:00

标签: sql laravel indexing laravel-5 eloquent

之间有什么区别吗?
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

对我来说它是一样的,因为外键是一个索引,我是对的吗?

2 个答案:

答案 0 :(得分:0)

引用此question,索引外键很好,但数据库不会自动索引它。

所以上面的2个代码块是不同的。

我认为您可以尝试打开数据库架构并检查它。

答案 1 :(得分:0)

我找到了答案:

默认情况下,某些数据库会自动为所有创建的外键添加索引。

Eloquent只执行 - 创建外键 - 命令,MySQL会自动添加索引。

感谢来自laracasts的Mittensoff的答案;)