使用MYSQL界定符备份及还原数据库 比sql文件更给力
使用MYSQL界定符备份及还原数据库 比sql文件更给力
在《高性能Mysql》第二版中看到,SQL文件和界定符文件在备份、还原时的耗费时间对比。
方式文件大小导出时间还原时间
SQL dump727M102s600s
Delimited dump669M86s301s
看起来界定符文件的导出比sql文件快了近20%,还原速度快了一倍。
记录和总结一下语法:
备份:SELECT INTO OUTFILE
SELECT*FROM hx_9enjoy INTO OUTFILE'/tmp/9enjoy.txt'
默认使用tab分割字段,记录使用\n分割。可以自定义三个参数。
SELECT*FROM hx_9enjoy INTO OUTFILE'/tmp/9enjoy_hx.txt' FIELDS TERMINATED BY',' OPTIONALLY ENCLOSED BY'"' LINES TERMINATED BY'\n';
即使用,分割字段,双引号限定字段内容,\n分割记录。
还可以指定某些条件的记录输出:
SELECT*FROM hx_9enjoy WHERE id<100INTO OUTFILE'/tmp/9enjoy_100.txt'
还原:LOAD DATA INFILE
默认情况:
LOAD DATA INFILE'/tmp/9enjoy.txt' INTO TABLE hx_9enjoy
如果有指定界定符,则加上界定符的说明:
LOAD DATA INFILE'/tmp/9enjoy.txt' INTO TABLE hx_9enjoy FIELDS TERMINATED BY',' OPTIONALLY ENCLOSED BY'"' LINES TERMINATED BY'\n'
注意事项
1.mysql必须要有权限访问生成文件的那个目录
2.由于安全方面的原因,不能覆盖已存在的文件,不管这个文件的权限是怎么分配的。
3.不能直接导出一个压缩文件。