如何查询OceanBase(MySQL模式)中表与索引的实际并行度?
在OceanBase(MySQL模式)中查询表与索引的并行度设置
核心解决方案
OceanBase MySQL模式下,官方支持通过以下系统视图查询表和索引的实际并行度配置:
查询表的并行度
使用INFORMATION_SCHEMA.OB_TABLET_TABLE_STAT视图,其中PARALLEL_DEGREE字段对应表的实际并行度值:
SELECT table_name, parallel_degree FROM INFORMATION_SCHEMA.OB_TABLET_TABLE_STAT WHERE table_schema = 'MY_SCHEMA';
未显式设置并行度的表,该字段会返回默认值
1,对应无显式并行设置的状态。
查询索引的并行度
通过INFORMATION_SCHEMA.OB_INDEX_STAT视图结合表信息关联查询,获取索引的并行度:
SELECT t.table_name, i.index_name, i.parallel_degree FROM INFORMATION_SCHEMA.OB_INDEX_STAT i JOIN INFORMATION_SCHEMA.TABLES t ON i.table_id = t.table_id AND t.table_schema = 'MY_SCHEMA';
未显式设置的索引,
PARALLEL_DEGREE同样返回默认值1。
补充说明
- Oracle兼容视图
DBA_TABLES/DBA_INDEXES在OceanBase MySQL模式下的DEGREE字段未映射实际并行度配置,因此无法通过这些视图获取正确值,属于模式兼容层面的限制。 - 若需批量检查合规性,可添加过滤条件
WHERE parallel_degree != 1,快速定位存在显式并行设置的表或索引。
内容的提问来源于stack exchange,提问作者user30132773




