0

我是加快查询速度的索引列。在此之前,我只做过全文索引。我需要为此编写特殊的语法。我的问题是有一种特殊的语法来编写查询,或者我可以只在该列上使用 where() 方法?

我可以这样使用它吗?

Model::where('customer_id',2)->get()

索引将应用于该查询?

我想知道的第二件事是它会消耗更少的 MySQL 服务器 CPU 吗?或者更多?因为有很多查询,我遇到了 100% CPU 消耗的问题,索引可以帮助我解决这个问题吗?

第三件事是做索引后是否需要再次导入数据?还是会在所有数据上自动实施?

4

1 回答 1

1

你在这里问几个问题。

索引应用于数据库并帮助它更有效地进行查询。数据库真的很擅长他们所做的事情,并且会选择一个最有意义的“执行计划”。这意味着它要么直接扫描你的表,要么如果你设置了一个更有效的索引,那么它将使用它。

我可以这样使用它吗?索引将应用于该查询?

创建索引后您不必做任何特别的事情,您的数据库将自动在相关查询中使用它

我想知道的第二件事是它会消耗更少的 MySQL 服务器 CPU 吗?或者更多?

以我的经验,更少。您正在为数据库提供一种更有效地查询数据的方法,因此它需要花费更少的时间来计算您想要的内容。不过,索引确实占用了更多存储空间

第三件事是做索引后是否需要再次导入数据?还是会在所有数据上自动实施?

它会自动应用,您不需要做任何特别的事情。

于 2021-03-02T03:15:49.473 回答