• Cluster Table


             对簇表来说,总是要先创建簇段(cluster segment)。然后将表关联到cluster segment里。由此可知,簇表也是虚拟表,没有对应的segment,簇表对应的是cluster segment。有两种类型的簇表:索引簇表和哈希簇表。索引簇表中,簇上面必须有一个索引。其主要用于总是进行主明细表关联查询的表,主表和明细表根据关联字段,将数据同时放入同一个簇数据块里,也就是一个数据块存放了两个表的记录。这样的话,当我们两表关联查询时,只需要扫描一个数据块就可以了。

     

    创建簇表的实例如下:

    create cluster orders(orderno number);create index idx_orders on cluster orders;

    create table order_master(orderno number,customerid number,createdate date) cluster orders(orderno);

    create table order_item(orderno number,productid number,qty number) cluster orders(orderno);

     

    在哈希簇表中,则是在将表的记录插入簇段的时候,对簇所在的列运用哈希函数,从而得到该记录所在的数据块的位置。哈希簇不能像索引簇那样关联多个表,我们只能将一个表关联到哈希簇上。

    其创建命令如下:

    create cluster phones_customer(phone_no number) hashkeys 100000 size 50;

    create table phones(phone_no number,name varchar2(10)) cluster phones_customer(phone_no);

     

    上面的命令中hashkeys表示phone_no的值最多不超过100000.对于每个hashkeys值所对应的所有记录行来说,在segment头部都会有一块空间,来存放这些数据行的地址。而size就表示了每个hashkeys所能使用的空间的大小,在上例中,该空间为50个字节。

  • 相关阅读:
    VMware WorkStation 用 VMTools 官方下载地址 windows-vmtools tools-windows
    LeetCode Golang 9.回文数
    CentOS6.5中配置Rabbitmq3.6.6集群方案
    python之lambda、filter、map、reduce的用法讲解
    跨主机容器之间通信实现方式:etcd+flanned
    mongo3.4安装
    centos 时区的更改 UTC TO CST
    Elasticsearch5安装
    docker1.*.*版本安装
    使用weave来实现多宿主机中的docker容器之间通信
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3172282.html
Copyright © 2020-2023  润新知