本帖最后由 Php_Little_Bear 于 2010-12-17 08:47:21 编辑

解决方案 »

  1.   

    什么版本、系统,用MYSQL的分区表试试
      

  2.   

    windows mysql 5.1 以上才有分区  手册上没有很详细的例子。
      

  3.   

    你是想把数据库移到另一个硬盘分区上,不是做表分区。你可以先停止你的MYSQL服务,然后把整个DATADIR目录复制到目标硬盘分区上,然后再修改MY.INI中的DATADIR参数。再启动MYSQL就可以了。
      

  4.   

    你的MYSQL版本
    http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html
    手册比较详细
      

  5.   

    OR
    直接用MYSQLDUMP备份数据库,再新建数据库,导入备份
      

  6.   

    转移数据,可以直接复制DATADIR目录,再修改配置文件。
    或者将整个MySQL目录转移到别的分区,然后修改配置文件,重新配置服务。
    都可以的。
      

  7.   

    1:mysqldump 出来之后,修改my.cnf里面的数据目录,datadir=新的磁盘,再还原;适用myisam表.
    2:要是innodb的话,dump出来之后,修改innodb_data_file_path的最后一个表空间到新的目标目录,再还原.
    3:把datadir的目录整个复制到新的目标地址,再用软连接连接到旧地址,不需要修改配置文件(适用myisam)---linux
    4:在data目录的同级,新加一个后缀名为sym的文件.把某个库的地址指到新地址如(E:\data\Q)----windows
      

  8.   

    直接COPY容易出问题,INNODB引擎的表不能直接COPY,最好用MYSQLDUMP备份
      

  9.   

    partition_definition:
        PARTITION partition_name
            [VALUES { 
                      LESS THAN (expr) | MAXVALUE 
                    | IN (value_list) }]
            [[STORAGE] ENGINE [=] engine-name]
            [COMMENT [=] 'comment_text' ]
            [DATA DIRECTORY [=] 'data_dir']        [INDEX DIRECTORY [=] 'index_dir']
            [MAX_ROWS [=] max_number_of_rows]
            [MIN_ROWS [=] min_number_of_rows]
            [TABLESPACE [=] (tablespace_name)]
    看分区的红色部分。可以指定某个分区的存储位置。
      

  10.   

    CREATE TABLE ts (id INT, purchased DATE)    PARTITION BY RANGE(YEAR(purchased))    SUBPARTITION BY HASH(TO_DAYS(purchased))    (        PARTITION p0 VALUES LESS THAN (1990)        (            SUBPARTITION s0                 DATA DIRECTORY = '/disk0/data'                 INDEX DIRECTORY = '/disk0/idx',            SUBPARTITION s1                 DATA DIRECTORY = '/disk1/data'                 INDEX DIRECTORY = '/disk1/idx'        ),        PARTITION p1 VALUES LESS THAN (2000)        (            SUBPARTITION s0                 DATA DIRECTORY = '/disk2/data'                 INDEX DIRECTORY = '/disk2/idx',            SUBPARTITION s1                 DATA DIRECTORY = '/disk3/data'                 INDEX DIRECTORY = '/disk3/idx'        ),        PARTITION p2 VALUES LESS THAN MAXVALUE        (            SUBPARTITION s0                 DATA DIRECTORY = '/disk4/data'                 INDEX DIRECTORY = '/disk4/idx',            SUBPARTITION s1                 DATA DIRECTORY = '/disk5/data'                 INDEX DIRECTORY = '/disk5/idx'        )    );
    我现在是考虑这个问题,如何解决。
    这个是手册中的例子,是在linux下的,我如何在windows中实现,可以只把表分到 F:和G:两个磁盘下。
      

  11.   

      DATA DIRECTORY INDEX DIRECTORY
    windows 下这两个参数不起作用.
      

  12.   

    WINDOWS中不支持符号连接,所以不能实现数据库文件存储在不同位置。
      

  13.   

    用MYSQLDUMP备份、再导入吧,否则换系统(UNIX)
      

  14.   

    没有办法,目前的MYSQL版本在WINDOWS都不支持这个选项。
      

  15.   

    能给出个可运行的例子吗?让我look一下~~~~~~~~还有个问题,在一台机器上运行两个或多个mysql服务器的例子有没,要注意什么,
      

  16.   

    楼上有强分嫌疑,^_^,,,
    谁有在linux上分区的例子?
      

  17.   

    不是嫌疑,是事实
    手册中的就是LINUX上的分区表例子
      

  18.   


    试试window的磁盘映射方案啊!
    F:\mysql\data2\ 映射到G:\mysql\data啊!
      

  19.   


    楼主这方法你可以试下:
    4:在data目录的同级,新加一个后缀名为sym的文本文件.要是把数据库指向G: 
    则在里面写入: G:\data\移过来的数据库文件夹名,这样就可以利用G盘了,不过针对的是一个数据库,不是某张表;既然是windows 用不了 data directory.只能用这个方法来减少空间不足的问题.还有个问题,在一台机器上运行两个或多个mysql服务器的例子有没,要注意什么注意 端口,SOCK文件,外部锁.
      

  20.   

    ACMAIN_CHM的答案是正解,只不过,我还没有验证。
    实际的情况还不知道会怎样。