用mysql8.0版本批量导入数据,会存在安全问题,8.0的版本对安全要求比较高,会限制本地数据的导入导出。一个解决方法就是:
1.查看安全路径;show variables like '%secure%'
2.把需要导入的文件,放进安全路径中。
3.然后加载安全路径中的数据;
load data infile "安全路径"
into table 表名
fields terminated by ','
ignore 1 lines
导入时把生成索引给关掉,应该能快一点.不要一边导入一边建立索引.
8G数据,应该也不那么慢了.
把sql语句文件读取出一部分看看,建表语句中,应当有建立索引的部分,删掉它!
只做建表和插入数据两件事.
还有,看看数据库有没有外键?
尽量在插入数据过程中去掉外键关联.
等数据插入完成之后再加索引和外键,应该能提高很多读写性能.
截取一部分数据,例如100Mb.
插入一下试试,可以预先对整体时间有一个预期.
还有,真的要弄台好点的电脑,或者去借一台,等把数据导入完成之后,把msyql的库文件直接复制出来放自己机器上跑就好.
emm..
再追加点信息,要先搞明白,sql原文件里,到底都执行了哪几类 *** 作?
可能需要你用c之类写点小工具,或者别的什么语言,分块读取并处理文件.
8G..
嗯,还好.
现在内存都够大,否则你都没法直接用软件打开了.
只有8G也可以直接用软件打开看.
停掉索引真的可以大幅度加快插入数据的速度.
建议试一试!
你双击dbf是什么程序打开的?vfp吗?你可以使用set printer to file abc.sql
list to print
然后使用一个文本编辑器,如emeditor,编辑这个abc.sql,将内容构造为标准的sql语句:
insert into mytable (a,b,c,d,e) values ('dbf_field1','dbf_field2','dbf_field3','dbf_field4','dbf_field5')
然后在mysql administrtor中,将这个abc.sql导入到数据库中就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)