文档首页/ 云数据库 GaussDB/ 开发指南(分布式_V2.0-8.x)/ FAQ/ 什么是数据倾斜,如何检查?
更新时间:2024-11-12 GMT+08:00
分享

什么是数据倾斜,如何检查?

答:数据倾斜即多个DN内数据分布不均,对于hash分表策略,如果分布列选择不当,可能导致数据倾斜,查询时部分DN出现效率短板,从而影响整体查询性能。因此在采用Hash分表策略之后需对表的数据定期进行数据倾斜性检查或监控,以确保数据在各个DN上是均匀分布的。执行如下语句,查看各DN内元组数目。

gaussdb=# SELECT a.count,b.node_name FROM (SELECT count(*) AS count,xc_node_id FROM tablename GROUP BY xc_node_id) a, pgxc_node b WHERE a.xc_node_id=b.node_id ORDER BY a.count DESC;

如果各DN内元组数目相差较大(如相差数倍、数十倍),则表明已发生数据倾斜现象。需要重新选择分布列,当前不支持通过ALTER TABLE语句调整分布列,因此调整分布列时需要重新建表。

相关文档