WEB开发网
开发学院数据库MySQL 理解MySQL——并行数据库与分区(Partion) 阅读

理解MySQL——并行数据库与分区(Partion)

 2009-12-30 00:00:00 来源:WEB开发网   
核心提示: 要为某个分区表配置一个专门的存储引擎,必须且只能使用[STORAGE] ENGINE 选项,理解MySQL——并行数据库与分区(Partion)(6),这如同为非分区表配置存储引擎一样,但是,比如SUM() 和COUNT(),能够很容易的并行执行; 通过并行I/O,必须记住[ST

要为某个分区表配置一个专门的存储引擎,必须且只能使用[STORAGE] ENGINE 选项,这如同为非分区表配置存储引擎一样。但是,必须记住[STORAGE] ENGINE(和其他的表选项)必须列在用在CREATE TABLE语句中的其他任何分区选项之前。下面的例子给出了怎样创建一个通过HASH分成6个分区、使用InnoDB存储引擎的表:

CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
    ENGINE=INNODB
    PARTITION BY HASH( MONTH(tr_date) )
    PARTITIONS 6;

注:分区必须对一个表的所有数据和索引;不能只对数据分区而不对索引分区,反之亦然,同时也不能只对表的一部分进行分区。

分区对数据库管理系统实现并行处理有着重要的影响,如果对数据进行分区,则很容易进行并行处理,但是,MySQL还没有充分利用分区的这种并行优势,而这也是它改进的方向 (这种分治思想深深的影响着并行计算,而且在并行计算方面具有天然优势)。MySQL的分区,会给系统带来以下一些优点:

    与单个磁盘或文件系统分区相比,单个表可以存储更多的数据。

    对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。

    对于带Where的条件查询语句,可以得到更大的优化;只需要查询某些分区,而不用扫描全部分区。

还有其它一些优点,不过MySQL 5.1还不支持:

    一些聚合函数,比如SUM() 和COUNT(),能够很容易的并行执行;

    通过并行I/O,可以大大提高查询的吞吐量。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:理解 MySQL 并行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接