MysqlでユニオンとユニオンALLキーワード

680 ワード

データベースでは、UNIONとUNIONALLのキーワードは、両方の結果セットを1つに統合しますが、どちらも使用率と効率が異なります.MySQLのUNIONONONNIONでは、表リンクを行うと重複するレコードがフィルタリングされるため、表リンク後に発生した結果セットをソート演算し、重複するレコードを削除して結果を返す.実際のほとんどのアプリケーションでは重複するレコードは生成されず、最も一般的なのはプロセステーブルと履歴テーブルUNIONである.次のようになります.select * from gc_dfys union select * from ls_jg_dfysこのSQLは、実行時に2つのテーブルの結果を取り出し、並べ替えスペースで並べ替えて重複したレコードを削除し、最後に結果セットを返します.テーブルのデータ量が大きいとディスクで並べ替えられる可能性があります. 
MySQLのユニオンALL
ユニオンALLは単純に2つの結果を統合して返すだけです.これにより、返される2つの結果セットに重複するデータがある場合、返される結果セットには重複するデータが含まれます.
効率的に言えば、ユニオンALLはユニオンよりずっと速いので、マージされた2つの結果セットに重複するデータが含まれていないことを確認できれば、ユニオンALLを使用して、以下のようにします.select * from gc_dfys union all select * from ls_jg_dfys