GaussDB分布式数据倾斜处理

python 复制代码
常规数据倾斜巡检
在库中表个数少于1W的场景,直接使用倾斜视图查询当前库内所有表的数据倾斜情况
SELECT * FROM pgxc_get_table_skewness ORDER BY totalsize DESC;

在库中表个数非常多(至少大于1W)的场景,因PGXC_GET_TABLE_SKEWNESS涉及全库查并计算非常全面的倾斜字段,所以可能会花费比较长的时间(小时级),请根据PGXC_GET_TABLE_SKEWNESS视图定义,直接使用table_distribution()函数自定义输出,减少输出列进行计算优化,例如

SELECT schemaname,tablename,max(dnsize) AS maxsize, min(dnsize) AS minsize 
FROM pg_catalog.pg_class c 
INNER JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace 
INNER JOIN pg_catalog.table_distribution() s ON s.schemaname = n.nspname AND s.tablename = c.relname 
INNER JOIN pg_catalog.pgxc_class x ON c.oid = x.pcrelid AND x.pclocatortype = 'H' 
GROUP BY schemaname,tablename;

建议:

分布健选择:

  1. 字段的值尽量离散;
  2. 选择分布健唯一键;
  3. 根据业务场景选择多的字段作为分布健。
相关推荐
Gauss松鼠会6 天前
GaussDB数据库统计信息自动收集机制
数据库·经验分享·sql·oracle·gaussdb
Gauss松鼠会6 天前
效率起飞!GaussDB 管理平台(TPOPS)升级指南
服务器·数据库·性能优化·gaussdb·经验总结
Gauss松鼠会7 天前
【GaussDB】GaussDB逻辑操作符入门指南
数据库·性能优化·gaussdb·经验总结·逻辑操作符
Gauss松鼠会10 天前
GaussDB for DWS 数据融合:Oracle数据迁移到GaussDB(DWS)
数据库·oracle·数据库开发·gaussdb
Gauss松鼠会10 天前
GaussDB(DWS)数据融合:云端GaussDB(DWS)迁移
java·服务器·网络·数据库·性能优化·gaussdb
Gauss松鼠会12 天前
【openGauss】openGauss 磁盘引擎之 ustore
java·服务器·开发语言·前端·数据库·经验分享·gaussdb
Navicat中国13 天前
干货整理 | Navicat 高频技术问题 Q&A:PostgreSQL、GaussDB、OceanBase、达梦、MongoDB、金仓、MySQL、麒麟等
postgresql·oceanbase·gaussdb
Gauss松鼠会13 天前
【GaussDB】浅谈SQL与ETL
数据库·数据仓库·sql·etl·gaussdb·经验总结
你说咋整就咋整18 天前
openGauss6.0.3 一主二从集群安装手册
数据库·python·gaussdb