所以我有一个不寻常的要求。我正在处理具有数十亿行的表。
该表具有非唯一列“ id”,并且具有列“ data”
我想做的是对“ id”分组的行数进行计数,但将计数限制为仅150个条目。我只需要知道任何给定的ID是否有150行。
这是为了优化查询和性能。
不必计数。我只需要知道给定的id是否具有150个条目,而无需MySQL在查询期间继续计数条目。如果这样的话。
我知道如何进行计数,也知道如何进行分组,并且我都知道如何进行分组,但是计数会返回一个以百万为单位的数字,这浪费了处理时间,并且查询需要运行数十万个id 。
问题来源于stack overflow
我认为这是不可能的。您将不得不扫描整个表,以了解哪些表id具有至少150个条目。
所以:
select id from mytable group by id having count(*) >= 150 在索引为on的情况下id,它应该尽可能高效。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。