重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
跑一个推荐算法的DEMO需要导入2百万的数据
创新互联建站专业为企业提供湘桥网站建设、湘桥做网站、湘桥网站设计、湘桥网站制作等企业网站建设、网页设计与制作、湘桥企业网站模板建站服务,十余年湘桥做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
不动脑的想象用batch insert, 批量提交的方式
尝试发现其实速度并不乐观,2000条/分钟的写入速度,
200 0000 / 2000 = 100分钟,速度不能接受,尝试其他办法。
大批量数据的正确方式就文件导入方式进行,个人觉得10万数据以上用batch insert就比较吃力了。
load data方法只支持mysql 5.5版本及以上
执行步骤:
secure_file_prive=null 限制mysqld 不允许导入导出
secure_file_priv=/tmp/ 限制mysqld的导入导出只能发生在/tmp/目录下
secure_file_priv=' ' 不对mysqld的导入导出做限制
修改secure_file_prive,直接找到my.ini中secure_file_prive修改为空重启mysql即可
随意执行,如果位置不对会给出相应的提示位置,然后再将需导入的文件copy至相应位置再执行即可 (load data infile语法需自行了解。)
我有个大的 SQL 文件要回放,需要马上做,但又怕压死业务,怎么办?
先来建一个测试库:
塞一些数据进去:
看看我们填充数据的成果:
使用 mysqldump 导出一份数据:
现在我们假设要把这个 dump 文件,回放到一个数据库中,并且现在数据库正在承担很重的业务,我们不希望业务受到太大影响。
先来看看如果直接回放 dump 文件,会发生什么?
我们看到 MySQL 的 cpu 会彪起来,
我们换一个方式来回放 dump:
看看 CPU 压力:
可以看到 CPU 已经非常冷静,并且缓慢的处理数据。
????小贴士:pv 工具既可以用于显示文件流的进度,也可以用于文件流的限速。在本实验中,我们用 PV 来限制 SQL 文件发到 MySQL client 的速度,从而限制 SQL 的回放速度,达到不影响其他业务的效果。
点击电脑‘运行’,输入cmd,然后点击确定。
cmd
2.找到sql的安装路径,打开命令行,进入Binn目录,输入:cmd,回车执行。
binn大致就在这个里面D:\Program Files\Microsoft SQL Server\100\Tools\Binn
3.执行下列语句:
sqlcmd -S localhost -U sa -P pwzyy!@#123 -i C:\Users\Administrator\Desktop\script.sql
说明:
-S:数据库服务器地址,我这里是本机直接用localhost
-U:用户名
-P:密码
-d:数据库名
-i:sql文件