简体   繁体   English

性能调整-MySQL

[英]Performance Tuning--Mysql

Is there any scope of tuning below query and increase the performance 查询下方是否有任何调优范围,可以提高性能

SELECT
    i.store_id,
    i.film_id,
    COUNT(*) AS total,
    COUNT(*) - (
        SELECT COUNT(*)
        FROM rental 
        WHERE
            inventory_id IN (SELECT inventory_id FROM inventory
                             WHERE inventory.film_id = i.film_id AND
                                   inventory.store_id = i.store_id)
    ) 
FROM `inventory` i 
GROUP BY
    i.store_id,
    i.film_id

Here I am fetching details on how many are there in store and how may rented out . 在这里,我正在获取有关商店中有多少商店以及如何出租的详细信息。

In my experience, subselects perform poorly in MySQL. 以我的经验,子选择在MySQL中的表现很差。 Temporary tables may be a better solution. 临时表可能是一个更好的解决方案。

Turn IN ( SELECT ... ) into a JOIN. IN ( SELECT ... )变成JOIN。

Add INDEX(store_id, film_id, inventory_id) 添加INDEX(store_id, film_id, inventory_id)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM