0

テーブル内のすべての列の個別の値の量を取得する必要があります。だから、私は次のようなクエリを使用するかどうか疑問に思います

select count(col1), count(col2),.., count(colN) from table;

テーブル全体をN回スキャンして、これらすべてのカウントを取得しますか?次に、具体的なDBMSがすべての列の値の量で配列1..Nを作成し、テーブルレコードをループし、配列要素をインクリメントすることによって値をカウントする必要があるオブジェクト/プロシージャを使用する方がよいでしょうか。
これはDBMSの実現に完全に依存していることを理解しているので、MySQL専用に知りたいです(ただし、他の一般的なシステムに関する情報も興味深いです)。

4

1 に答える 1

2

次のことを行う必要があります。

select count(distinct col1),
       count(distinct col2),
       ...
from   table;

データベースは、これを計算するために1回の全表スキャンを実行する必要があります。

于 2013-03-12T14:35:25.030 に答える