免费注册
帮助文档(华北一、二)

  • 在绝大部分传统数据中,索引都能够极大地提高数据访问速速。然而,在像DW数据仓库这样的分布式数据库系统中,索引的使用需要更加谨慎。

    索引会增加数据库系统的运行开销,它们占用存储空间并且在数据更新时,需要额外的维护工作。请确保查询集合在使用您创建的索引后,性能得到了改善(和全表顺序扫描相比)。可以使用 EXPLAIN 命令来确认索引是否被使用。

    创建索引时,需要注意下面的问题点:

    查询特点:索引对于查询只返回单条记录或者较少的数据集时,性能提升明显。

    压缩表:对于压缩的 append 表来说,对于返回一部分数据的查询来说性能也能得到提高。对于压缩的数据,使用索引访问方法时,只有需要的数据才会被解压缩。  避免在经常改变的列上创建索引:在经常更新的列上创建索引会导致每次更新数据时写操作大量增加。

    创建选择率高的 B-树索引  对于选择率较低的列,使用 Bitmap 索引。

    对参与连接操作的列创建索引。对经常用于连接的列(例如:外键列)创建索引,可以让查询优化器使用更多的连接算法,进而提高连接效率。对经常出现在 WHERE 条件中的列创建索引。

    避免创建冗余的索引。如果索引开头几列重复出现在多个索引中,这些索引就是冗余的。在大量数据加载时,删除索引。如果要向表中加载大量数据,考虑加载数据前删除索引,加载后重新建立索引的方法。这样的操作通常比带着索引加载要快。

    考虑聚簇索引。聚簇索引是指数据在物理上,按照索引顺序存储。如果您访问的数据在磁盘是随机存储,那么数据库就需要在磁盘上不断变更位置读取您需要的数据。如果数据更佳紧密的存储起来,读取数据的操作效率就会更高。例如:在日期列上创建聚簇索引,数据也是按照日期列顺序存储。一个查询如果读取一个日期范围的数据,那么就可以利用磁盘顺序扫描的快速特性。


文档是否已解决您的问题?

  已解决   未解决

如您有其它疑问,您也可以与我们技术专家联系探讨。

联系技术专家