繁体   English   中英

性能调整-MySQL

[英]Performance Tuning--Mysql

查询下方是否有任何调优范围,可以提高性能

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

在这里,我正在获取有关商店中有多少商店以及如何出租的详细信息。

以我的经验,子选择在MySQL中的表现很差。 临时表可能是一个更好的解决方案。

IN ( SELECT ... )变成JOIN。

添加INDEX(store_id, film_id, inventory_id)

暂无
暂无

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

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