
delimiter $$
CREATE PROCEDURE s_card()
BEGIN
DECLARE j INT(11)
loop1: WHILE j<=1000 DO
insert INTO `tablename`(xxxxxx) values (xxx)
SET j=j+1
END WHILE loop1
END$$
delimiter
把上面存储过程运行一下,输入 call s_card()可以循环插入1000条数据
如果要指定输入条数可以把数字从外界传入
*** 作方法如下:1、首先需要在mysql管理工具上面新建一个表,也可以用mysql命令创建,表建立完成之后,需要将表中的字段名字告诉给填写excel表的人员。
2、打开excel表,按照程序提供的字段填写相应的数据,需要跟程序提供的一样,其他的描述。.
3、使用的mysql管理工具Navicatfor MySQL,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确.d出一个选择界面,选择excel file文件。
4、点击next(下一步),选择对应的excel文件就行,然后再下面选文件内容在哪一个sheet中,也就是内容写在excel什么地方,这点需要注意,也是关键的地方。
5、点击next (此步骤也是关键步骤),需要注意2点: 1:filedname row 就是字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列).2:first data row(从哪一行开始执行),数据从哪一行开始。.
6、点击next选择 targettable 目标对应的数据库,选择要导入到哪个数据库中表中。
7、如果到上面一步没有问题的话,默认next到最后 就行了.然后打开表就能看到数据跟excel表中的一样。
导入时把生成索引给关掉,应该能快一点.不要一边导入一边建立索引.
8G数据,应该也不那么慢了.
把sql语句文件读取出一部分看看,建表语句中,应当有建立索引的部分,删掉它!
只做建表和插入数据两件事.
还有,看看数据库有没有外键?
尽量在插入数据过程中去掉外键关联.
等数据插入完成之后再加索引和外键,应该能提高很多读写性能.
截取一部分数据,例如100Mb.
插入一下试试,可以预先对整体时间有一个预期.
还有,真的要弄台好点的电脑,或者去借一台,等把数据导入完成之后,把msyql的库文件直接复制出来放自己机器上跑就好.
emm..
再追加点信息,要先搞明白,sql原文件里,到底都执行了哪几类 *** 作?
可能需要你用c之类写点小工具,或者别的什么语言,分块读取并处理文件.
8G..
嗯,还好.
现在内存都够大,否则你都没法直接用软件打开了.
只有8G也可以直接用软件打开看.
停掉索引真的可以大幅度加快插入数据的速度.
建议试一试!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)