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

Explainに基づくMySQLの最適化

    サブクエリの代わりに内部結合を試してください。デフォルトでは、データを実行せずにクエリをガイドしますが、クエリに従うと役立つ場合があります。

    SELECTUser 。id 、User 。username 、User 。password 、User 。role 、User 。created 、User 。modified 、User 。email 、User 。other_user_id 、User 。first_name 、User 。last_name 、User 。place_id 、Resume 。id 、Resume 。user_id 、Resume 。other_resume_id 、Resume 。other_user_id 、Resume 。file_extension 、Resume 。created 、Resume 。modified 、Resume 。is_deleted 、Resume 。has_file 、Resume 。is_stamped 、Resume 。is_active

    FROM streetofwalls 。users ASUser
    LEFT JOIN my_database 。attempts ASattempts オン(attempts 。user_id =User 。id ANDattempts 。test_id !=5)LEFT JOIN my_database 。reports ASResume オン(Resume 。user_id =User 。id )

    、my_database 。users AS User1

    LEFT JOIN my_database 。tags_users AS TagUser on(User1 。id =TagUser 。user_id )

    LEFT JOIN my_database 。tags ASタグオン(TagUser 。tag_id =tags 。id )

    WHEREUser 。id =User1 。id ANDattempts 。test_id =8ANDattempts 。score> 60
    およびResume 。has_file =1ANDtags 。id ='8'ANDtags 。id !='3' GROUPBYUser 。id ORDER BY Attempt 。score DESC;




    1. codeigniterの複数のwhere_in条件の配列

    2. 結果セットの最後の行のすべての列値の合計と行の合計(group by)を取得するSQLクエリ

    3. @SQLInsertと重複キーでHibernate

    4. ORACLEとTRIGGERS(挿入、更新、削除)