使用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.不能直接导出一个压缩文件。