今天本是晴天,到了下午天一下子暗起来了,不久便下起了小雨,没办法外出,就在家鼓捣起了MySQL数据库服务。
前一段时间做内训,演示数据库复制服务,通过数据库客户端工具Navicat Premium导入样例数据库时,只导入了数据库结构,数据却一条都没导入,当时就觉得纳闷,好在不影响演示,打算有空了查一下。今天恰好有点时间,从下午四点多,一直鼓捣到晚上,差不多搞明白了原因,同时也尝试了通过mysql数据库服务的参数调优来提高大数据量的导入性能。
01 实验环境
1、本地win10,需要安装并配置好mysql,怎么安装百度查;
2、安装客户端工具Navicat Premium,怎么安装百度查;
3、华为云&天翼云上开通mysql数据库服务,我选择更低配1c2g,SAS盘,并配置了2M的EIP;
4、下载mysql示例数据库,大概有近400万条数据,具体下载地址忘了,如果需要可以@我。
02 Navicat 导入数据失败
先从日志里查找原因,提示是语法错误,不断的去尝试,发现在Navicat工具的mysql命令行窗口,仅仅输入source命令居然也报错,百思不得其解,各种百度,可能的原因是source命令是mysql客户端的工具集,Navicat可能不支持,要导入还是要直接在命令行窗口执行。
03 本地批量数据导入
1、以系统管理员的权限打开cmd窗口;
2、运行 net start mysql,显示“服务已经启动成功”,如下图:
3、进入到employees样例数据库文件夹,执行导入数据库命令:
mysql -h 125.124.74.17 -P 8635 -uroot -pTest@1234 < employees.sql
“<”符号表示导入数据库文件,执行结果如下:
图中导入数据成功,耗时4分42秒,通过Navicat工具能够直观的看到导入的数据库、表、视图及数据等,如下图:
04 参数调优
通过不断地尝试,针对大数据量的批量导入,在华为云&天翼云服务端可以调优的参数有2个,分别是
innodb_flush_log_at_trx_commit和bulk_insert_buffer_size,我们可以在华为云&天翼云mysql服务的参数组界面修改参数,如下图:
innodb_flush_log_at_trx_commit
该参数控制重做日志写入磁盘的过程,系统默认为1,表示事务提交时,会将重做日志缓冲写入磁盘,并且立即刷新.也即是说一旦事务完成,数据立即写盘,以确保数据不会丢失。但对于批量导入大量数据的情况,会导致频繁写盘,影响导入性能。我们这里将该参数设置为0,表示每间隔1秒再写盘。这里我们把参数从1改为0,如图:
bulk_insert_buffer_size
用来缓存批量插入数据的时候临时缓存写入数据,大数据的sql文件能达到几百M乃至上G,默认8M,确实有点小,这里我们改到120M。
修改参数后保险期间需重启数据库实例。
05 性能优化效果
先是修改了
innodb_flush_log_at_trx_commit参数,导入数据耗时00:04:14,快了28秒;
然后再修改bulk_insert_buffer_size参数,耗时00:03:42,此次调优提升了32秒;
相比没有调优之前,整体快了60秒,相当于性能提升了了27%!
06 总结
通常用户在云端开了RDS服务后,需要将本地私有云的数据批量导入到云端,对数据量达到千万级的情况,需要综合来考虑,比如数据可以分批导入,为提升导入性能,可以调整RDS的相关参数,以加快数据的导入速度,使客户的业务中断时间降低到最小。当然除了手动导入,也可以通过购买数据库复制服务来实现在线的数据导入,好处是能够避免人工导入带来的疏忽,并能实现业务的平滑迁移。
最后附上导入的数据库的相关表的数据条数:
SELECT count(*) from salaries 2844047 SELECT count(*) from employees 300024 SELECT count(*) from titles 443308 SELECT count(*) from dept_emp 331603
3 月 24 日,欧盟管理机构宣布《数字市场法案》(Digital Markets Act,简称DMA)已达成共识,将会对欧洲的大型科技公司进行全面的监管。作为一项具有深远影响的雄心勃勃的法律,该法案中最引人注目的措施将要求每个大型科技公司(在欧盟拥有超过 750 亿欧元的市值或超过 4500 万人...
Wormhole Portal 刚刚遭遇了“桥梁”漏洞攻击,导致该加密货币平台损失了相当于 3.228 亿美元的 ETH 和 SOL 。问题源于以太坊区块链上的一个“智能合约”缺陷,别有用心的攻击者可借此将一款加密货币转换成另一种并跑路。 攻击后,失窃的加密货币资产已缩水至 2.94 亿美元。虽然...
随着勒索软件和世界各地其他网络攻击的增加,系统运营商更加担心复杂的 “虚假数据注入 “攻击,即黑客向其提供虚假的数据,欺骗电脑系统和人员,使其认为操作正常。然后,攻击者扰乱了工厂关键机器的功能,导致其运行不良或故障。当安全人员意识到他们被欺骗时,为时已晚,造成了灾难性的后果。 普渡大学的Hany A...
医疗设备制造商美敦力公司(Medtronic)已召回其部分胰岛素泵使用的遥控器,因为这些遥控器存在严重的漏洞,可能导致患者受伤或死亡。 攻击者可以利用漏洞来改变胰岛素泵提供给病人的剂量。 “MiniMed™远程控制器使用无线射频(RF)与胰岛素泵通信,可以在不按任何胰岛素泵按钮的情况下将一定量的胰岛...
2021年CVE回顾: 时间飞逝,转眼间来到了2022年。新的一年即将开始,让我们来回顾一下2021年的物联网设备CVE情况。 2021年CVSSV3平均值为5.5,2020年CVSSV3平均值为6.1,同比去年下降0.6。 通过平均值的对比,我们可以清楚的看到各大厂商在2021年对物联网安全的重视...
据报道,全球最大的肉类供应商JBS在周日遭到了黑客的攻击,这是全球食品供应链所面临的又一威胁。此前,新冠疫情已经对全球食品供应链造成了较大影响。周一,JBS公司通过电子邮件向外界表示,公司服务器遭到黑客有组织的攻击,从而不得不关闭了位于北美和澳洲的计算机网络。 JBS表示,这起黑客攻击事件有可能会推...