sql >> データベース >  >> RDS >> Mysql

次のクエリの実行に時間がかかりすぎます。それを最適化する方法

    使えると思います

    JOINの代わりに。

    SELECT m.year, COUNT(m.id) FROM movies m 
    where 
    exists (select * from roles r where r.movie_id=m.id and 
    exists(select * from actors a where a.id=r.actor_id and a.gender='F'))
    group by  m.year;
    

    上記の出力とともに年間の総映画数を表示します。

    select t1.year,t1.count,t2.total from 
    (
    SELECT m.year as year, COUNT(m.id) as count FROM movies m 
    where exists (select * from roles r where r.movie_id=m.id and exists(select * from actors a where a.id=r.actor_id and a.gender='F'))
    group by  m.year
    )t1 
    join
    (select year,count(m.id) as total from movies m group by m.year) t2
    on t1.year=t2.year;
    


    1. PHPの複数の画像ファイルのアップロードとフォルダおよびデータベースへの保存

    2. エラー:アップストリーム[uWSGI / Django / NGINX]から応答ヘッダーを読み取っているときに、アップストリームが接続を途中で閉じました

    3. MySqlスペイン語文字データ

    4. 列から不要な文字を削除する