mysql 导入导出 优化_MySQL 数据库数据导入方法和优化数据导入操作 | IT工程师的生活足迹...

在数据恢复时,需要将备份的数据文件重新导入到数据库实例中。如果你发现你的SQL文件有100G,导入需要10多个小时;是不是很无奈啊?

一、数据导入的方法

1.1、登录MySQL终端使用Source命令导入数据

使用source命令或者\.方式导入SQL脚本文件。

a、每执行一条SQL语句,都会输出执行情况。

b、当遇到错误时,不会阻塞后面的SQL语句。

1.2、调用mysql客户端读取SQL语句文件

调用方式:mysql dataname < sql_file

a、安静模式执行,当遇到错误时会报错和停止。可以使用–force管理。

b、省去info信息的输出,应该比source方式要快一些。

1.3、登录MySQL终端使用Load加载数据

调用方式:load data infile 'path/to/file' into table test_table

a、以非常高的速度从文本文件读取数据行到数据表中。

b、load 是和select into outfile 结合使用的。

c、将数据从数据表中导出到文本中。完全将数据内容从数据库管理机制中剥离出来,存储为Execl表格格式。

1.4、使用mysqlimport客户端工具

和前者相似。

1.5、导入数据的方法比较

以上四种数据导入方式中,前两种可以用来处理mysqldump客户端工具导出的数据,后两种则是用来处理文件中格式化的数据(select into outfile)。

select into outfile 这种方式也可以备份数据并且在数据导入时要快很多,不过有自身的局限性。

1、将数据脱离了数据库管理机制。数据库的表结构需要单独备份处理。每张表一个文件。

2、不能备份存储过程、函数、触发器。

3、不能获取备份时刻的binlog日志位置,不能保证数据的一致性。

请根据情况使用。

前两种方式导入SQL 脚本文件方式,推荐使用后者。

二、优化MySQL 提高数据导入速度

优化数据库导入速度的思路

2.1、减少数据库操作

关闭二进制日志:去掉log-bin配置选项。

减小事务提交后日志刷新频率:innodb_flush_log_at_trx_commit=0每秒1次。

2.2、增加日志尺寸

较大的事务日志缓冲区,减少写入日志的I/O操作:innodb_log_buffer_size

较大的日志文件,减少检查点和写入I/O:innodb_log_file_size

2.3、增加写入线程

InnoDB引擎写操作的I/O线程数:innodb_write_io_threads(不要超过CPU核心数)

2.4、增加缓存池

innodb_buffer_pool_size

innodb_buffer_pool_chunk_size

innodb_buffer_pool_instances

2.5、关闭双写缓冲区(doublewrite)

启动MySQL示例时,使用--innodb-doublewrite=0选项参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值