Mysql中快速导入数据
2014-12-05 15:07
253 查看
公司要求为产品做一个离线升级工具,代理商可以下载后直接双击这个exe对当前版本进行升级。工具的其中一个功能是升级前备份用户的数据,升级失败还原数据。之前代码中一直使用的是mysqldump.exe来备份,对小数据量的情况还是稳定的,
还原用的mysql.exe执行
导出order_dish_history文件,总共26万条数据。
使用mysqlimport来导入打数据量的历史表(这种方式要注意的是文件的路径必须相对于mysql数据文件的路径,导入的表是文件名)
26万条数据,耗时30秒
使用Load data infile的方式
耗时跟mysqlimport差不多
"..\mysqldump.exe" string.Format(" -h{0} -P{1} -u{2} -p{3} -q -R {4} > {5}" , conn.Server, conn.Port, conn.UserID, conn.Password, conn.Database , directoryPath + string.Format(@"\{0}.sql", conn.Database))
还原用的mysql.exe执行
"..\mysql.exe" string.Format("DROP DATABASE {0};CREATE DATABASE /*!32312 IF NOT EXISTS*/`{0}` /*!40100 DEFAULT CHARACTER SET utf8 */;", conn.Database); string.Format(" -h{0} -P{1} -u{2} -p{3} --default-character-set=utf8 {4} < {5}" ,conn.Server,conn.Port,conn.UserID,conn.Password,conn.Database,backupFile)
整个DB71万条数据,数据+索引的大小是474M(大量使用了GUID主键).导出耗时约40秒,导入耗时约两分钟。
机子配置
由于有客户反映还原数据库耗时长,这边尝试针对历史表进行还原的优化
导出order_dish_history文件,总共26万条数据。
-hlocalhost -P3306 -uuserId -ppwd -q -R databaseName order_dish_history --fields-terminated-by='Z' --tab="F:\Test\database"
使用mysqlimport来导入打数据量的历史表(这种方式要注意的是文件的路径必须相对于mysql数据文件的路径,导入的表是文件名)
-hlocalhost -P3306 -uroot --replace databaseName rmsdb\\order_dish_history.txt
26万条数据,耗时30秒
使用Load data infile的方式
LOAD DATA INFILE 'F:\\Test\\rmsdb\\order_dish_history.txt' INTO TABLE order_dish_history FIELDS TERMINATED BY '\Z'
耗时跟mysqlimport差不多
相关文章推荐
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- Mysql 大量数据快速导入导出
- MySQL杂项(索引注意事项 快速导入导出数据 锁 字符集 慢查询)
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- MySQL InnoDB 快速导入数据
- 快速的mysql导入导出数据(load data和outfile)
- Mysql大量数据快速导入导出
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- 算法:将table标识的树形结构文本数据快速导入Mysql邻接表
- MySQL 快速导入大量数据 资料收集
- mysql数据向Redis快速导入
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- Mysql快速导入数据――LOAD DATA
- Mysql 快速插入批量数据,从文件中导入数据
- mysql下的快速导入导出数据以及索引禁用
- 使用MySQL Migration Toolkit快速导入Oracle数据
- mysql数据向Redis快速导入
- MYSQL快速导入本地数据