为什么说全局索引会在数据更新时会带来分布式事务

【产品名称】OceanBase-cs

【产品版本】3.1

【问题描述】

请教:

为什么说,全局索引,在数据更新时会带来分布式事务。

那,为啥,本地索引,不存在这个问题?

这个很好理解,就是看下什么情况下需要分布式事务。

在OB中,涉及到两个或两个以上的partition更新操作时,就需要分布式事务来处理。

全局索引更新时,索引本身也是数据,它也处于某个partition中。而索引关联的普通数据,跟索引数据是不在一个partition中,所以全局索引更新时 会带来分布式事务。

本地索引,索引数据跟普通的数据,是关联起来的,可以使用类似table group的概念理解他。更新本地索引,他关联的数据,都会在同一个“table partition group" 中,所以不会带来分布式事务。

1 个赞

你就简单理解为,全局索引是给建了一个单独的表,存放索引影射关系。这个表的数据和这个索引表的数据可能不在一个observer,这就涉及多个OBServer,就有分布式事务了。

全局索引:OB集群自然是分布式事务;

本地索引:就是单机,没有可以分布的服务器。