这是杂货铺的第441篇文章
背景:
按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。
本文主题:第二章《Tables and Table Clusters》 - Overview of Tables。
哈希聚簇概要
哈希聚簇,除了会用一个哈希函数替代索引键之外,就像一个索引聚簇。不存在独立的聚簇索引。在哈希聚簇中,数据就是索引。
在索引表或者索引聚簇中,Oracle数据库会使用独立索引中的键值定位数据行。为了查找或存储索引表或表聚簇中的行,数据库至少需要执行两次I/O操作:
- 一次或多次查找或存储索引中的键值。
- 另一次是读取或写入表或表簇的行。
为了查找或存储哈希聚簇中的行,Oracle数据库会对行的聚簇键值性哈希函数。得到的哈希值会对应到聚簇的一个数据块上,数据库会对这些数据块进行读写操作。
哈希是一种提高数据检索性能的可选方法。当可以满足如下条件的时候,才会从聚簇中得到便利:
- 对表更多的是检索操作,不是修改操作。
- 哈希键列通常使用等价条件,例如,department_id=20。对这种查询,聚簇键值会被哈希。哈希键值会直接指向存储行的磁盘位置。
- 你能很自然地猜出哈希键的数量,以及存储每个键值的数据容量。