/ Ako optimalizovať mysql dotaz s vnútorným spojením - mysql, sql, databáza, join, klauzula

ako optimalizovať mysql dotaz s vnútorným spojením - mysql, sql, databáza, join, klauzula

select id from customer_details where store_client_id = 2
And
id  NOT IN (select customer_detail_id from  orders
where store_client_id = 2 and total_spent > 100 GROUP BY customer_detail_id )
Or
id IN (select tcd.id from property_details as pd, customer_details as tcd
where pd.store_client_id = 2 and pd.customer_detail_id = tcd.customer_id and pd.property_key = "Accepts Marketing"
and pd.property_value = "no")
And
id IN (select customer_detail_id from orders
where store_client_id = 2 GROUP BY customer_detail_id HAVING count(customer_detail_id) > 0 )
Or
id IN (select tor.customer_detail_id from ordered_products as top, orders as tor
where tor.id = top.order_id and tor.store_client_id = 2
GROUP BY tor.customer_detail_id having sum(top.price) = 1)`

Mám tento mysql dotaz s vnútorným pripojením, takže keď beží na mysql server, spomaľuje to, čo je problém nájsť.
Ale po 4-5 minútach vráti 15 000 záznamov. Tieto záznamy nie sú problémom.
V niektorých tutoriál odporúčame používať Vnútorný spoj, Ľavý spoj, ... Ale neviem, ako previesť tento dotaz do klauzuly o pripojení. Akákoľvek pomoc bude ocenená. Vopred ďakujem.

odpovede:

1 pre odpoveď č. 1

Najprv si prečítajte relačný model a optimalizácia vybraných vyhlásení.