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

Mysqlユニオン時間V.S.クエリを1つずつ分離する

    UNION 演算子では、行が返される前に、重複するタプル(行)を結果セットから削除する必要があります。これは事実上、SORTUNIQUE操作です。これは、小さな結果セットの場合は比較的安価ですが、大規模なセットの場合、サーバー時間にリソースを大量に消費する可能性があります(つまり、長い時間がかかります)。

    理論的には、クエリをUNION ALLと組み合わせる UNIONではなく演算子 ( n を排除するため、演算子が最速になります -1)データベースへのラウンドトリップと、クエリを個別に実行すること。ただし、 nの値が大きい場合 、SQLテキストのサイズ(最大パケットサイズ)に実際的な制限があります。

    UNIONから選択すると 演算子と個別のクエリ。大きな結果セットの場合、個別のクエリはサーバー側でのリソース消費が少なくなります。

    要するに、これは実際には、各クエリの手間のかかる作業と、SORTUNIQUE操作の手間のかかる作業との間のトレードオフです。



    1. MySQLでデータベースの名前を変更する方法

    2. 新しいMicrosoftSQLServerODBCおよびOLEDBドライバーのもつれを解く

    3. EBSからエフェメラルストレージにデータを移動すると、MySQLクエリのパフォーマンスが向上しますか?

    4. SQL Serverの.bakファイルをMySQLにインポートする方法は?