我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

介绍:

大家好,我是公众号“8:30科技站”的创建者——Bruce.D(姓:窦)。

感谢微信的个人认证,重点分享PHP和数据库技术领域的知识和经验。

技术交流不仅仅局限于阅读。 欢迎各界专家和新手来到“wx技术群”分享编程经验和技术实用知识。

概述:

本文讲解:如何快速导入逻辑备份生成的SQL脚本。 其他文件格式暂不解释。

在日常开发中,大家一定都遇到过这些需求:“数据迁移、数据恢复、新建从库”等一系列任务,因为我们肯定知道满足这些需求会涉及到大量数据的处理。

大量的数据有时会导致我们的数据处理进度很慢,所以我们必须找到一些解决方案来解决它,对吧。

其实这里面有一些技巧,可以大大提高我们数据的处理速度,所以让我们开始吧~~~

提示-选项1

首先请注意:在导出或导入数据时,尽量使用MySQL自带的命令工具,不要使用一些图形工具(...)。 因为MySQL命令行工具比图形工具至少快2倍。

命令工具行模式:

# 导出整个实例mysqldump -u用户名 -p密码 --all-databases > all_database.sql
# 导出指定库mysqldump -u用户名 -p密码 --databases testdb > testdb.sql
# 导出指定表mysqldump -u用户名 -p密码 testdb test_tb > test_tb.sql
# 导入指定SQL文件 (指定导入testdb库中)mysql -u用户名 -p密码 testdb < testdb.sql

提示-选项2

修改参数:

在MySQL中,有这样一对有趣的参数,即:

“ innodb_flush_log_at_trx_commit ” “ sync_binlog ”

出于安全考虑,该参数默认为1。为了快速导入SQL数据,可以临时修改默认参数值。

参数一: innodb_flush_log_at_trx_commit默认值为1,可设置为0、1、2

设置为0,每秒会向日志文件写入一次log,同时会进行日志文件的flush(刷新到磁盘操作。 该模式下,当事务提交时,不会主动触发对磁盘的写操作。

设置为1,MySQL会在每次提交事务时将日志数据写入日志文件,并刷新到磁盘。

设置为2,每次提交事务时MySQL都会将日志数据写入日志文件。 但flush(刷新到磁盘)操作不会同时进行。 在这种模式下,MySQL每秒都会执行一次flush(刷新到磁盘)操作。

参数二: sync_binlog默认值为1,可设置为[0,N)

当=0时,与操作系统刷新其他文件的机制一样,MySQL不会同步到磁盘而是依赖操作系统刷新日志。

当=N(N>0)时,MySQL每写入N次二进制日志log,就会使用()函数将其写入的二进制日志同步到磁盘。

注:这两个参数可以在线修改。 如果想快速导入,可以按照下面的命令行

# 1.进入MySQL命令行 临时修改这两个参数set global innodb_flush_log_at_trx_commit = 2;set global sync_binlog = 2000;
# 2.执行SQL脚本导入mysql -uroot -pxxxxxx testdb < testdb.sql
# 3.导入完成 再把参数改回来set global innodb_flush_log_at_trx_commit = 1;set global sync_binlog = 1;

提示 - 选项 3

这个场景也很熟悉,就是新建一个从库,不需要生成日志。

解决办法很简单,在sql脚本开头添加:

set sql_log_bin=0;

然后继续执行导入,也会加快速度。 (如果没有启用MySQL则无需执行该语句)

到这里就结束了。 首先,恭喜您阅读了另一篇文章。 如果您觉得有用,请保存并转发以帮助有需要的朋友。

解决办法有很多,就看你是否更愿意去研究和发现。 欢迎在评论区留言~~~

向下滚动,有有用的信息

跟我再战n+1天

同时,为了方便大家学习,我会在微信群里存储一些源码和技术资料。 您可以随时在微信群中交流。 扫描下方二维码并备注“技术进群”即可通过审核。

进群的朋友请在右侧添加私人微信(注:技术人员进群)

----贡献分割线----

二维码
扫一扫在手机端查看

本文链接:https://by928.com/1433.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线