【发布时间】:2020-05-24 02:27:57
【问题描述】:
我有以下数据库表:
id - PK (Auto Increment)
hash - a unique index the value here is filled using the function "uniqid()"
title - string..
我想使用哈希值而不是 id 从表中查询。这种做法是否会加载服务器,因为我知道这是从数据库表中获取某些行的最佳方式,尤其是包含大量行的行是使用主键进行搜索:
$row = Book::find(1);
或者我可以使用以下 eloquent builder 而不必担心对数据库服务器造成不必要的负载,因为他的哈希被设置为唯一键:
$row = Book::where('hash',$hashFromAPiRequest)->first();
有一个名为laravel Scout的包,我不确定我是否真的需要使用它。
【问题讨论】:
-
这真的和 Laravel 无关。假设,MySQL,最快的方式是通过键,因为 InnoDB 通过 PK 实现聚集索引。话虽如此,索引哈希的访问效率很高。