Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要获取表中每一列的不同值的数量。所以,我想知道,如果使用像这样的查询
select count(col1), count(col2),.., count(colN) from table;
将扫描整个表 N 次以获得所有这些计数?那么使用具体 DBMS 必须创建数组 1..N 的对象/过程会更好吗?每个列的值数量和通过循环表记录和递增数组元素来计算值? 我知道这完全依赖于 DBMS 的实现,所以我想专门为 MySQL 了解它(但有关其他流行系统的信息也很有趣)。
你需要做:
select count(distinct col1), count(distinct col2), ... from table;
并且数据库应该只进行一次全表扫描来计算这一点。