我用mysqldump导出数据库,也使用了 --opt 参数,但导出的Insert语句还是非常的长;这样造成的直接后果就是导入的时候执行的超级慢;我将导出的文件中的Insert语句分成多段后,导入速度有明显改观;由于数据库本身的数据量是百万级的,所以我不可能每次都重新编辑一下导出的文件;
所以请各位高手帮兄弟解决以下问题:
1、mysqldump导出的文件中是否可以限制Insert语句的长度;
2、是否可以通过某种配置使得数据库恢复的更快;

解决方案 »

  1.   

    MySQL版本是5.0.22
    执行导出的语句是:mysqldump --host=localhost --user=user --password=psd --port=3306 --default-character-set=gbk --opt --databases dbname> D:\db_back_07-08-03.sql
    执行的导入命令是:mysql --host=localhost --port=3306 --user=root --password=mysql --default-character-set=gbk -f < db_back_07-08-03.sql
      

  2.   

    直接导出文件大约 8M,一条Insert语句大约有 1M 大小;执行导入大概需要40多分钟;
    我将其处理,将其分成多条Insert语句,每条大约 22K ;执行导入大约用时40多秒;
    谁来帮帮我啊!
      

  3.   

    直接使用Mysql -uroot -ppass -h hostname < file.sql 导入啊,这样应该很快的。我最多试过  500m的也没有你说的那么慢。
      

  4.   

    INSERT的语句过长?那你的字段是不是太多了?
      

  5.   

    嫌长的话。可以直接导出csv格式的数据集,没有insert之类的字符串
      

  6.   

    gxd305()
    我就是用的Mysql命令导入的,可惜时间真的是差强人意!
    没办法,自己做了个备份文件的处理程序,
    将一条"insert into tablename values ('',''),('',''),('',''),('',''),('',''),('','');"
    改成了多条"insert into tablename values ('',''),('',''),('',''),('','');"
    原本mysqldump命令导出的数据是多条,可惜力度不够,如果哪位仁兄有更好的办法,还请赐教!谢谢以上说有人士的回答;
      

  7.   

    也有可能和系统或硬件配置有关:
    测试的系统有:XP、Windows 2003、Windows 2000 Server
    硬件环境:AMD Athlon(tm) 64 X2 Dual; CoreProcessor 4400+ ; 2.00 GHz,2.00GB 的内存
    测试文件大概在110MB左右
    用时基本上都在6.5个小时备注:
        这样的速度,别说让用户接受了,就开发人员自己在调试的时候就够受的了!