创建索引疑问

在oceanbase V4版本中,如何查看已创建索引的索引类型local和global?

1 个赞

@论坛小助手

在OceanBase V4版本中,要查看已创建索引的索引类型(Local或Global),可以通过查询系统表来获取相关信息。您需要执行SQL查询来检查表的索引信息,通常可以通过查询information_schema.statistics表,或者对于更详细的索引元数据,可以查询oceanbase.__all_index表。以下是一个查询示例,用于列出特定表的所有索引及其类型:

SELECT 
  table_name, 
  index_name, 
  non_unique, 
  seq_in_index, 
  column_name, 
  collation, 
  cardinality, 
  sub_part, 
  packed, 
  index_type, 
  comment, 
  index_comment, 
  is_visible, 
  expression, 
  `global` 
FROM 
  information_schema.statistics 
WHERE 
  table_schema = 'your_database_name' 
  AND table_name = 'your_table_name';

这里的global字段可能不会直接显示在information_schema.statistics表中,因此对于更详细的信息,建议查阅oceanbase.__all_index表或者其他相关系统表,以确定索引是否被标记为globallocal。如果需要具体字段名,请参考官方文档。

检索到的文档如下:

  1. OceanBase 数据库在 MySQL 模式租户下的扩展功能
  2. 使用 OceanBase 数据库分区表进行水平拆分
  3. 索引设计
2 个赞

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003977602

image


创建非分区表的索引时,也能用local 关键字吗?

image

非分区表,为什么local和global都可以?

可以看下这个,讲的比较明白
https://open.oceanbase.com/blog/13725359494

1 个赞

那有没有考虑过,在进行OMS迁移时,反向增量会同步DDL到源端,非分区表的LOCAL字段也会同步到源库建索引,如源库租户模式为O,建索引会失败的这种情况。

还有这个

https://open.oceanbase.com/blog/16377956640

这种情况建议建表时严格些吧,具体 Oracle模式建议咨询商业版

1 个赞

学习学习

学习