私は38k行のテーブルを持っています。このクエリを使用してitemsテーブルのアイテムIDとposted_domainsテーブルのアイテムIDを比較します。Mysql実行時間の長いクエリ
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
このクエリは、8Sを取りました。クエリに問題があるのか、mysqlが正しく設定されていないのか分かりません。 (それらはしばしば外部クエリ内の行ごとに一度、繰り返し実行されるように)このクエリはかなり遅くなることが
$items->doesntHave('posted', 'and', function ($q) use ($domain) {
$q->where('domain_id', $domain->id);
});
どの列にテーブルのインデックスがありますか? – Webeng
各テーブルのID列は – user3233336
投稿されたテーブルにインデックスを追加しましたが、今ははるかに高速です156ms。ありがとう! – user3233336