(mysql)利用redolog刷盘控制解决导入海量数据太慢的问题

(mysql)利用redolog刷盘控制解决导入海量数据太慢的问题,第1张

事务每次提交都会将log buffer中的日志写入os buffer并调用fsync()刷到log file on disk中。这种方式即使系统崩溃也不会丢失任何数据,但是因为每次提交都写入磁盘,IO的性能较差。

事务提交时不会将log buffer中日志写入到os buffer,而是每秒写入os buffer并调用fsync()写入到log file on disk中。也就是说设置为0时是(大约)每秒刷新写入到磁盘中的,当系统崩溃,会丢失1秒钟的数据。

每次提交都仅写入到os buffer,然后是每秒调用fsync()将os buffer中的日志写入到log file on disk。

以上出自https://www.cnblogs.com/f-ck-need-u/archive/2018/05/08/9010872.html

当我们在导入大量数据时,控制innodb_flush_log_at_trx_commit =2,即可节省导入时间,待测试

在my.ini最底下添加个KV对:max_allowed_packet=100000M然后重启Mysql,就可以按普通的方法导了,可以用mysql命令,也可以用navicat for mysql(我一般用这个)不知道能不能写成100G,没试过,LZ试下吧。如果改不了my.ini可以试试这个方法,我没试过,因为我一直是改my.ini的,相信你有这么大的数据库应该不是用的虚拟主机吧:set global max_allowed_packet = 100*1024*1024*1024然后用:show VARIABLES like '%max_allowed_packet%'查看一下是否修改成功,这个应该就不用重启mysql了,重启反而失效了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8682671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存