Informix Dynamic Server数据库分段存储
硬盘 数据库 设计 服务器 存储 Informix Dynamic Server分段存储,也称之为分片存储,其原理是对数据表中的记录或索引有规则地分散存储在磁盘不同的区域,达到将数据存储在多个磁盘上,通过减少对磁盘I/O的竞争,来提高数据库的效率。 与此相反的是基本存储原则,其鼓励将数据库表中的数据尽量连续地存放在一个存储设备上,在Informix Dynamic Server读出数据时,将数据批量读出,以提高数据库的效率。
分段存储主要是通过均衡磁盘 I/O,实现内部查询的并行操作、并行地扫描多个磁盘上的数据来提高查询效率,其使数据库性能的提高主要来自于I/O并行度的提高,而不是I/O性能的提高。实际上分段存储是对一些数据量较大的表在存储时提供的一个方法,用户可以选择分段存储也可以不选择分段存储。一个好的分段存储工具可以很好地提高查询效率。否则,不但数据库的查询效率得不到提高反而会降低。在实际应用中,Informix Dynamic Server并不会在意数据放在哪个具体的物理盘上,而是具体到相应的dbspace上,因为Informix Dynamic Server查询可并发执行的最小单位就是dbspace。
分段存储的原理
分段存储可以分为轮转法和基于表达式的方法。轮转法是使用Informix Dynamic Server内部定义的规则将表分段存储。在建表时,可以指定对数据的存储采用轮转法,其语法是:
CREATE TABLE tablename (aa integer …)
FRAGMENT BY ROUND ROBIN IN dbspace1,dbspace2, ……dbspaceN。
|
基于表达式的方法是使用用户定义的规则将表或索引分段存储在不同的dbspace中。基于表达式的方法又可以分为范围规则和绝对规则,范围规则是用SQL的关系(>、<、>=、<=)或逻辑操作(and、or)定义表的数据分片的边界,一般用一个字段,也可以根据需要用2个或多个字段。范围规则的语法是:
CREATE TABLE tablename (a1integer....)
FRAGMENT BY EXPRESSION
a1 <= 0 IN dbspace1,
a1 >= 0 AND a1 <= 100000 IN dbspace2,
REMAINDER IN dbspace3;
|
绝对规则是用关系操作符(>、<、>=、<=)与逻辑操作符(and、or)对规则进行定义,可以是表中的多个字段参与分段。绝对规则的语法是:
CREATE TABLE tablename (a1 integer....)
FRAGMENT BY EXAMPLE
a1 = 100000 or a1=200000 IN dbspace1,
a1 = 300000 or a1=400000 IN dbspace2,
REMAIDER IN dbspace3;
|
硬盘 数据库 设计 服务器 存储 Informix Dynamic Server分段存储,也称之为分片存储,其原理是对数据表中的记录或索引有规则地分散存储在磁盘不同的区域,达到将数据存储在多个磁盘上,通过减少对磁盘I/O的竞争,来提高数据库的效率。 与此相反的是基本存储原则,其鼓励将数据库表中的数据尽量连续地存放在一个存储设备上,在Informix Dynamic Server读出数据时,将数据批量读出,以提高数据库的效率。
分段存储主要是通过均衡磁盘 I/O,实现内部查询的并行操作、并行地扫描多个磁盘上的数据来提高查询效率,其使数据库性能的提高主要来自于I/O并行度的提高,而不是I/O性能的提高。实际上分段存储是对一些数据量较大的表在存储时提供的一个方法,用户可以选择分段存储也可以不选择分段存储。一个好的分段存储工具可以很好地提高查询效率。否则,不但数据库的查询效率得不到提高反而会降低。在实际应用中,Informix Dynamic Server并不会在意数据放在哪个具体的物理盘上,而是具体到相应的dbspace上,因为Informix Dynamic Server查询可并发执行的最小单位就是dbspace。
分段存储的原理 |