Laravel 我应该在关系中使用index()?

Laravel 我应该在关系中使用index()?,laravel,Laravel,我不确定何时在迁移中使用索引 我举个例子: 用户表 用户银行明细表 目前,我写的是: Schema::create('bankdetails', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('user_id'); ... }); 我正在了解与你的关系 public function bankdetail(){ return $this-

我不确定何时在迁移中使用索引

我举个例子:

用户表 用户银行明细表 目前,我写的是:

Schema::create('bankdetails', function (Blueprint $table) {
    $table->increments('id');
    $table->unsignedInteger('user_id');
    ...
});
我正在了解与你的关系

public function bankdetail(){
    return $this->hasOne(Bankdetail::class);
}
在这种情况下,您还会使用索引吗

让我困惑的是Jeff的GitHub,你们会发现他很少使用索引

除此之外,如果我给它设置外键

$table->foreign('user_id')->references('id')->on('users');

我还需要使用索引吗?

如果你的问题是我应该在用户id或id上使用索引,那么答案是否定的

一个是增量方法的主键原因,增量方法本身就是索引的。 另一个是外键,它本身也有索引

何时使用: 当查询中的where条件中使用了一个字段时,最好是一个整数字段

示例:如果状态字段包含值0,1,2,3。。。您应该为它编制索引。

索引将索引添加到数据库中。要知道何时在迁移中使用索引,您需要了解何时向数据库添加索引

索引是可以非常高效地搜索的表中选定数据列的副本。数据库索引允许查询有效地从数据库检索数据。索引与特定表相关,由一列或多列组成

正确地实现索引可以提高查询性能,但也会增加额外的写入和存储空间成本,以维护索引数据结构。您必须确保明智地使用索引

选择索引时的注意事项

索引使用最频繁的查询。换句话说,按工作负载而不是表选择索引。 在索引数量上保持平衡,因为它们会带来额外的维护成本。但不要对索引总数设置上限。 为重要或按优先级排序的查询建立索引列。 索引已排序或分组的列,以提高性能。 包含唯一数据(如电子邮件或用户名)的索引列 索引包含外键的列 索引列将增加仅索引访问的机会。如果对索引列的查询返回来自其他几列的数据,则可以对这些列进行索引以提高该查询的性能。
这不是要求,而是优化。如果查询表时使用的不是已经被内在索引的主键,那么它的性能会更好。例如,当您有bankdetails.id,但有一个按帐号而不是按id获取bankdetails的查询时,使用该方法。对帐号进行索引将更快返回。