开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

一个表可以有多个聚簇索引吗?

已解决

一个表可以有多个聚簇索引吗?

展开
收起
云上静思 2022-07-12 10:46:56 1941 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    可以的。这个可能与我们见到的大多数数据库不太一样,比如MySQL索引组织表只能有一个聚簇索引,Oracle和SQL Server除了索引组织表外可以允许再单独创建一个全局聚簇索引。但PolarDB-X作为分布式数据库,回表的代价是非常高的。

    而且除了聚簇索引外,还支持一种覆盖索引的方式,就是在索引里面指定一些冗余的列。这两种方式的区别在于,对于一些相对模糊的查询(比如select *),仅仅采用覆盖索引这种方式,可能由于加列,导致模糊查询性能有波动。如果想要彻底解决该问题,就可以建聚簇索引。聚簇索引的特点是会保持表结构与主表完全一致,这样无论是加列还是减列,查询性能都不会受到影响。

    以上内容摘自《PolarDB-X 从入门到实战》电子书,点击https://developer.aliyun.com/ebook/download/7674可下载完整版

    2022-07-12 15:36:16
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载