本博文Think主要从两个问题着手:
① 在哪些情况下某种类型的表比其他表类型更适用?
② 不同类型的表其数据是如何组织和存储的?
闲言少叙,一家之言,欢迎拍砖:
㈠ 堆组织表
⑴ 数据存储
如果把一个区当作一个箱子,那么一个表就是一组无序的箱子堆在一起
只要有可用的空间,数据可以放在任何地方
全表扫时,会按命中顺序来获取数据,而非插入的顺序
⑵ 适用场景
应用中99%的情况下使用的可能都是堆组织表
执行create table语句时,默认得到的表类型就是堆组织表
由于堆组织表在存储速度上较快,比较适合write I/O较多的情景
⑶ 相关参数
以下参数仅适用ASSM
① PCTFREE
这个参数用于控制能否将一行增加到一个块上
如果设置的PCTFREE参数过小,也会导致没有给update操作留下足够的空闲空间
② INITRANS
为块初始化分配的事务槽数,缺省为2,这也是最小值
每个并发事务都需要一个事务槽
倘若您认为将对同样的块完成多个并发操作,就应该考虑增大该值
不过现在该参数已经可以自动调整了,除非遇到相关等待,不需要过多关注
㈡ 索引组织表
⑴ 数据存储
① 在哪些情况下某种类型的表比其他表类型更适用?
② 不同类型的表其数据是如何组织和存储的?
闲言少叙,一家之言,欢迎拍砖:
㈠ 堆组织表
⑴ 数据存储
如果把一个区当作一个箱子,那么一个表就是一组无序的箱子堆在一起
只要有可用的空间,数据可以放在任何地方
全表扫时,会按命中顺序来获取数据,而非插入的顺序
⑵ 适用场景
应用中99%的情况下使用的可能都是堆组织表
执行create table语句时,默认得到的表类型就是堆组织表
由于堆组织表在存储速度上较快,比较适合write I/O较多的情景
⑶ 相关参数
以下参数仅适用ASSM
① PCTFREE
这个参数用于控制能否将一行增加到一个块上
如果设置的PCTFREE参数过小,也会导致没有给update操作留下足够的空闲空间
② INITRANS
为块初始化分配的事务槽数,缺省为2,这也是最小值
每个并发事务都需要一个事务槽
倘若您认为将对同样的块完成多个并发操作,就应该考虑增大该值
不过现在该参数已经可以自动调整了,除非遇到相关等待,不需要过多关注
㈡ 索引组织表
⑴ 数据存储