【发布时间】:2016-09-13 21:25:24
【问题描述】:
我有一个包含 38k 行的表,我使用这个查询来比较 items 表中的 item id 和 posted_domains 表中的 item id。
select * from `items`
where `items`.`source_id` = 2 and `items`.`source_id` is not null
and not exists (select *
from `posted_domains`
where `posted_domains`.`item_id` = `items`.`id` and `domain_id` = 1)
order by `item_created_at` asc limit 1
此查询耗时 8 秒。我不知道是我的查询有问题还是我的 mysql 配置错误。此查询由 Laravel 关系生成,如
$items->doesntHave('posted', 'and', function ($q) use ($domain) {
$q->where('domain_id', $domain->id);
});
【问题讨论】:
-
表中有哪些列有索引?
-
每张桌子上只有 id 列
-
我在张贴的表上添加了索引,现在快了 156 毫秒。谢谢!
标签: mysql sql database performance laravel-5.2