【有问必答】为什么我创建的 global index 会自动变成 local index?

好久没逛问答区,前几天在论坛上新增加了一个 “官方精选” 板块,然后发现马上就有用户来引用这个板块里的帖子来回答其他用户的问题。收到帖子被引用的通知之后,跑过去看了一眼用户的帖子,觉得挺有意思,趁机学习一下,顺便做些总结在这里和大家分享。

问题和分析详见这篇博客:《为什么我创建的 global index 会自动变成 local index?》

8 个赞

博客中有一部分内容是个别用户心心念念的直接通过内部表分析问题的记录,利用最常见的 oceanbase.__all_virtual_table 对索引类型进行了简单的区分,供大家参考~

9 个赞

所以,什么时候能把 __ 开头的内部表的说明放出来啊 :crazy_face:

5 个赞

个人还是推荐能用字典视图,就用字典视图,因为视图可以保证高低版本之间不会存在兼容性问题,类似于内部表的一个封装。

只有迫不得已的时候,才会让大家临时通过双下划线开头的内部表绕过一些视图暂时解决不了的问题(比如咱们这次,哈哈),不过最终还是会通过视图来解决这些问题的。

因为双下划线开头的内部表不同版本之间会有变化(很多版本升级,就是因为内部表的表结构发生了变化),例如每个小版本可能都会增加一些列、废弃一些列、增加一些表、废弃一些表,所以大概率不会放出说明的。不然不仅文档同学维护这个说明费劲,用户看说明、记说明也费劲。

没必要这么执着于使用双下划线开头的内部表哈,视图更加易用且稳定,还不会有兼容性问题。您如果对字典视图有任何需求和建议,都可以在这里提出来哈!我会帮你第一时间反馈给负责的产品同学。

8 个赞

您要真的对双下划线开头的内部表特别感兴趣的话,可以直接把源码下载下来,然后阅读开源代码中的 ob_inner_table_schema_def.py 这个文件,有任何问题,都可以再继续在这里留言和我交流~

[xiaofeng.lby@obvos-dev-d3 /home/xiaofeng.lby/work/obn/code_master]
$find . -name ob_inner_table_schema_def.py
./src/share/inner_table/ob_inner_table_schema_def.py

[xiaofeng.lby@obvos-dev-d3 /home/xiaofeng.lby/work/obn/code_master]
$vim ./src/share/inner_table/ob_inner_table_schema_def.py
7 个赞