cpu 8核
内存32g
数据集在2亿条左右
执行一条select count(*) num,imei from test group by imei order by num desc
cpu和内存居高不下
想请教是否是版本(V6.1.0)的问题还是使用的问题
imei 的分辨率是多少? 发下执行计划吧。
explain analyze 相当于执行了 SQL
去掉order by看看
从分布式计算原理上分析,tikv进行聚合计算,每个tikv节点将自身计算结果给到tidb节点。tidb节点进行汇总计算,排序。所以应该是不会有任何改善。这应该完全由imei的离散度决定。离散度越大,tidb节点的排序消耗越大。离散读越小,tidb节点的消耗越小。
你这数据量很大吧?还要排序
这个加索引速度就快了
把排序干掉 order by null , 外面自己排序去 , imei 加索引了么 , 没有就加上
加了索引的,现在直接把服务跑挂
cpu 8核
内存32g
数据集在2亿条左右
执行一条select count(*),imei from test group by imei
这样跑 imei 建索引
只要不嫌慢,不妨试下:
set tidb_distsql_scan_concurrency=3;
看执行计划是否生效:
explain select /+ stream_agg() / count() num,imei from test group by imei order by num desc;
执行:
explain analyze select /+ stream_agg() / count() num,imei from test group by imei order by num desc;
我帮他解决了这个问题 这个老师把tidb pd tikv部署在同一台服务器内 还另外加了tifalsh。 系统资源不够了。已经让他重新部署了 。每个组件独立部署。
2 个赞