MYSQL导入大量数据

MYSQL导入大量数据,第1张

跑一个推荐算法的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语法需自行了解。)

导入时把生成索引给关掉,应该能快一点.

不要一边导入一边建立索引.

8G数据,应该也不那么慢了.

把sql语句文件读取出一部分看看,建表语句中,应当有建立索引的部分,删掉它!

只做建表和插入数据两件事.

还有,看看数据库有没有外键?

尽量在插入数据过程中去掉外键关联.

等数据插入完成之后再加索引和外键,应该能提高很多读写性能.

截取一部分数据,例如100Mb.

插入一下试试,可以预先对整体时间有一个预期.

还有,真的要弄台好点的电脑,或者去借一台,等把数据导入完成之后,把msyql的库文件直接复制出来放自己机器上跑就好.

emm..

再追加点信息,要先搞明白,sql原文件里,到底都执行了哪几类 *** 作?

可能需要你用c之类写点小工具,或者别的什么语言,分块读取并处理文件.

8G..

嗯,还好.

现在内存都够大,否则你都没法直接用软件打开了.

只有8G也可以直接用软件打开看.

停掉索引真的可以大幅度加快插入数据的速度.

建议试一试!

点击电脑‘运行’,输入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文件


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

原文地址:https://54852.com/zaji/7640449.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存