如我已进行了如下分区:
ALTER TABLE E_info PARTITION BY RANGE(id)  
(   
    PARTITION p_50000000 VALUES LESS THAN (50000000),
    PARTITION p_catch_all VALUES LESS THAN MAXVALUE
); 两个问题:
1, 分区了之后如何恢复成以前的完整单个数据库文件?2, 分区后,对不同的区进行的操作是否会相互影响?
如在此例中,我对id为50000000以下的数据进行update,是否会影响到对50000000以上数据的查询速度?

解决方案 »

  1.   


    就是说,数据库在更新<50000000的数据的时候,仅仅锁住分区表p_50000000,而其它的毫无影响?
      

  2.   

    但是还有一种情况,我更新的字段是id字段,将< 50000000的update为> 50000000值,这样会有影响吗?我确实有这样的需求:
    比如:update set id = 50000001 where id = 49999999;这样的话,就不能保证不影响到对分区p_catch_all的访问吧?
      

  3.   

    之前没看到这贴
    现在回复下:
    1, 分区了之后如何恢复成以前的完整单个数据库文件? 
    直接把数据insert进一个非分区表即可
    create table tb_newname
    as 
    select * from tb_partition_table2、分区后,对不同的区进行的操作是否会相互影响? 
    看了下你所指的影响是指“锁”机制引起的影响,mysql目前的分区表好象都是local索引的,所以,理论上不影响。
      

  4.   

    mysql目前的分区表好象都是local索引的
      

  5.   


    什么叫local索引呢?
      

  6.   

    估计是想说 lock 索引,即MYSQL仅对INDEX进行LOCK。2、分区后,对不同的区进行的操作是否会相互影响? 
    应该与单表文件没什么差别。