如何在 laravel 中使用索引?

Posted

技术标签:

【中文标题】如何在 laravel 中使用索引?【英文标题】:How to use indexing in laravel? 【发布时间】:2021-05-31 14:25:52 【问题描述】:

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

我可以这样用吗?

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

索引将应用于该查询?

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

第三件事是做索引后需要重新导入数据吗?还是会在所有数据上自动实现?

【问题讨论】:

【参考方案1】:

你在这里问了几个问题。

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

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

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

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

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

第三件事是做索引后需要重新导入数据吗?还是会在所有数据上自动实现?

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

【讨论】:

太棒了...`索引确实占用更多存储空间。`这意味着硬盘内存或cpur内存? @Bilalarshad 他们会占用更多的硬盘内存。

以上是关于如何在 laravel 中使用索引?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Postgres jsonb '? Laravel 中具有索引支持的运算符?

如何在laravel的索引中获得3个表数据?

如果索引存在于 Laravel 迁移中,如何检查它们?

如何在不重新索引的情况下将项目添加到 laravel 列表集合中?

如何将数据库索引与 Datatables 和 yajra/laravel-datatables 一起使用

如何在Laravel中创建唯一索引?