調べるための最良の方法は、コース外でテストすることです。答えは、データセットのサイズ、さまざまなメタキーの数、それらの分布(すべてのエンティティにすべてのメタキーの値があるのか、それとも一部のメタキーのみの値があるのか)、データベースの設定によって異なる場合があります。サーバーとおそらく他の多くの要因。
推測すると、JOIN
のコストは オプション2の操作は、GROUP BY
のコストよりも小さくなります。 オプション1と3で必要な関数を集約します。
したがって、オプション2は1と3よりも速く見つかると思います。
オプション4を測定するには、アプリケーションが別のサーバーにある可能性があるため、より多くの要因を考慮する必要があります。そのため、2つの(dbおよびアプリケーション)サーバーの負荷と、これらの結果を要求するクライアントの数を考慮する必要があります。 。
補足:GROUP BY e.ID
が必要です オプション1と3で。