开发运维中,我们会遇到大型的数据库,数据特别多的情况下,我们就需要快速导出和导入,可以使用mysql数据快速导入导出大数据数据库操作。
一、导出操作
eg、使用quick快速将mydb数据库导出到E盘目录下,导出文件为.sql文件
mysqldump -u root -p --quick mydb --default-character-set=utf8 > E:/mysql-5.7.44-winx64/bak/mydb.sql
eg:快读导出数据库某张表
mysqldump -u root -p --quick mydb demo > E:/mysql-5.7.44-winx64/bak/demo.sql
这里如有有设置密码,会提示输入密码,如果没有设置密码,直接回车。
2、数据库导入操作
新建数据库mydb,执行下面命令
进入mysql数据库
mysql -u root -p
3、选择数据库
USE mydb;
4、执行导入操作
source D:\db\mydb.sql;
使用source命令来快读导入mydb数据库
3、导入大数据需要设置的几个参数,防止导出、导入超时报错,打开my.ini设置,增加[mysqld]以下配置:
[mysqld]
#参数用于控制MySQL实例在事务提交后,是否立即将日志缓冲数据更新至log file文件中,用于进行数据持久化。
0:日志每秒刷新到磁盘一次,事务提交时不刷新。这个设置提供了最好的性能,但如果MySQL发生崩溃,可能会丢失最近一秒内的事务数据。
1(默认值):每次事务提交时,日志都会被刷新到磁盘。这提供了最高的数据持久性,但可能会因为每次提交都进行磁盘I/O操作而降低性能。
2:日志每秒刷新到磁盘一次,但是每次事务提交时,日志信息只是写入到操作系统的缓存中。这种设置提供了性能和持久性之间的折中。
通过优化innodb_flush_log_at_trx_commit和sync_binlog参数的配置,可以提高数据库的性能和数据安全性。
innodb_flush_log_at_trx_commit=2
#innodb_log_buffer_size是InnoDB存储引擎使用的日志缓存大小,其主要作用是作为redo log的写缓存。 当这个缓冲区的大小不够大时,会导致多次IO write操作,即将缓存中的数据刷到磁盘。而当innodb_log_buffer_size设置得较大时,可以减少IO次数,从而提高性能。在一般的虚拟机环境或存储上,虽然IO write次数减少了,但写入的数据量大致相同,因此整体的IO延迟变化不大。但在更好的存储上,如果数据量相近,减少的write次数会导致延迟降低,从而提升整体性能
innodb_log_buffer_size=16M
#nnodb_buffer_pool_size参数在MySQL中用于控制InnoDB存储引擎使用的内存缓存池的大小。
innodb_buffer_pool_size=54G
#参数用于指定 InnoDB 重做日志文件(redo log files)的大小。重做日志是 InnoDB 用来保证事务的持久性和数据库的恢复能力的重要机制。当事务提交时,相关的更改会先被写入重做日志,然后再异步地刷新到磁盘上的数据文件中。
设置建议:这个参数的设置应该基于你的工作负载和系统的可用磁盘空间。太小的设置可能会导致频繁的日志切换,从而降低性能;太大的设置可能会浪费磁盘空间,并且在系统崩溃时增加恢复时间。一般来说,对于写入密集型的工作负载,可以考虑增加这个值。 注意事项:如果用 1G 的 innodb_log_file_size ,假如服务器当机,需要 10 分钟来恢复。推荐 innodb_log_file_size 设置为 0.25 * innodb_buffer_pool_size,更改这个参数的大小通常需要停止 MySQL 服务,删除旧的日志文件,然后重新启动服务以创建新的日志文件。因此,在生产环境中更改这个参数需要谨慎操作。
innodb_log_file_size=4G
文章评论(0)