记一次MySQL取百分位数的优化
记一次MySQL取百分位数的优化
需求如下
从一个(即将变为)巨大的rank_table表中取出百分位数,用来标记百分比排名。
rank_value字段设置了BTree索引
排名字段 id, rank_value 内容(下表为按rank_value升序排列获取到的结果)
188, 10
6, 20
805, 30
…
671, 990
22, 1000
国际惯例,先上结论
获取数据总数
select count(*) from rank_table;
计算出百分位数序号列表
执行以下sql获取到
原创
2020-06-24 17:53:27 ·
1470 阅读 ·
0 评论