簡體   English   中英

Laravel 表中使用索引鍵查詢的最佳實踐方法

[英]Laravel best practice method for querying using an index key in table

我有以下數據庫表:

id     - PK (Auto Increment)
hash   - a unique index the value here is filled using the function "uniqid()"  
title  - string..

我想使用 hash 值而不是 id 從表中查詢。 這種做法是否會加載服務器,因為我知道這是從數據庫表中獲取某些行的最佳方法,尤其是包含大量行的行是使用主鍵搜索的:

$row = Book::find(1);

或者我可以使用以下 eloquent 構建器,而不必擔心對數據庫服務器造成不必要的負載,因為他將 hash 設置為唯一鍵:

$row = Book::where('hash',$hashFromAPiRequest)->first();

有一個名為laravel Scout的 package ,我不確定我是否真的需要使用它。

您不需要為此使用 Laravel Scout。 一個簡單的 where 條件就足夠了。 只要 hash 列被索引,您的查詢就不會加載服務器。

但是,由於您提到了不必要的負載,您仍然可以在此處使用select()進行一點優化 請僅使用您真正需要的那些列,否則您將發送/消耗額外的數據字節。

$row = Book::select('id', 'title')->where('hash',$hashFromAPiRequest)->first();

如果您想了解有關優化的更多信息,還可以查看Laravel 使用 mysql 索引

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM