根据唯一值检索记录的最佳方法是什么?
我知道我可以使用:
$person = Person::where('fullname', "John Johnson")->first()
由于fullname
仅包含唯一值,是否有更类似于使用Person::find($id)
的方式?
答案 0 :(得分:2)
在生成的查询方面不应该存在任何效率差异 - 两个查询都会生成非常相似的SQL:
SELECT * FROM persons WHERE id = 5;
SELECT * FROM persons WHERE fullname = 'John Johnson' LIMIT 1;
效率可能会有所不同,具体取决于您的架构配置,因为主键通常会自动创建索引,而对于其他列,您需要创建自己索引。