Skip to content

Laravel 性能优化

whereIn 替换 whereHas

php
$user->whereHas('articles');
sql
select * from `users` where exists (select * from `articles` where `users`.`id` = `articles`.`user_id`)

替换为

php
$user->whereIn('id', function($q) {
    $q->select('user_id')->from('articles');
});
sql
select `*` from `users` where `id` in (select `user_id` from `articles`)