Cli*_*ote 7 mysql sql count query-optimization
我有一个foo
用这些字段调用的表:
- id
- type
- parentId
Run Code Online (Sandbox Code Playgroud)
我想选择一个父IDS列表,按照COUNT(*)
它们在表中出现的次数的降序排列.像这样的东西:
SELECT DISTINCT parentId FROM `foo`
ORDER BY (COUNT(parentId) DESC where parentId = parentId)
Run Code Online (Sandbox Code Playgroud)
如何以最有效的方式完成这项工作并将最少的负载放在服务器上?
表中可能有成千上万的记录,因此不能手动浏览每条记录.
Mic*_*ski 15
只需应用一个GROUP BY
子句,并假设你有一个索引FOREIGN KEY
,或者PRIMARY KEY
on parentId
,性能应该非常好.(parentId
看起来很可能是一个FORIEGN KEY
,所以一定要定义约束来强制执行索引).
SELECT `parentId`
FROM `foo`
GROUP BY `parentId`
ORDER BY COUNT(*) DESC
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8263 次 |
最近记录: |