对于在分区表上创建索引,以下说法正确的是:(单选)

对于在分区表上创建索引,以下说法正确的是:

A. 局部索引是在表的每个分区上创建的索引,局部索引的索引键必须包含分区键

B. 不论是全局索引,还是局部索引,其索引键中都会包含主键

C. 全局索引是在表的所有分区上创建的索引,全局索引只能有一个分区

D. 当需要保证全局唯一时,必须创建全局索引

8 个赞

都是错的吧

3 个赞

学习一下

2 个赞

不是

2 个赞

关于对于在分区表上创建索引的讨论很有价值,特别是在以下说法正确的是场景下,合理使用回复是关键。

4 个赞

A错: 非前缀索引可以没有分区键

原文“ * 前缀索引:当分区索引表的分区键是索引列的左前缀时,该索引称为前缀索引。这不同于 MySQL 长字符串的前缀索引。例如,索引表 idx 建立在 c1c2 列上,如果该索引表的分区键为 c1,那么该索引称为前缀索引;如果该索引表的分区键为 c2 或者其他列,则称为非前缀索引。

  • 非前缀索引:相对于分区前缀索引而言,如果分区索引不是前缀索引,那么称为非前缀索引。”

B错

C错:
原文:“全局索引拥有自己独立的分区定义,不需要跟主表一样”

D错
原文:
“ 唯一索引可以定义为全局索引或者是局部索引。

唯一索引定义为局部索引的时候,需要满足一定的条件,即索引键要覆盖索引分区键。 例如,表 A 上有个唯一索引 idx(c1,c2,c3),索引表 idx 按照 (c1,c2) 进行分区,这样能保证相同的 (c1,c2) 一定能进入同一分区,只需要在单个分区内维护唯一性。如果索引表 idx 按照 (c2,c4) 进行分区,索引没有覆盖分区键,就不能通过局部索引来保证分区之间索引键的唯一性,这样的局部唯一索引不能被创建。”

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

5 个赞

选D。

3 个赞

对的

2 个赞

学习一下

A吧

学习

1 个赞

没毛病,优秀

正确答案:D
局部索引仅能保证单分区内唯一,无法跨分区全局去重;如果业务需要整表全局唯一性约束,必须创建全局索引。

1 个赞

签到…

1 个赞