数据库使用MySQL,现需插入大量的测试数据,数据量在十几亿条以上,且都需按照一定的规则产生,使用存储过程插入太慢了,有什么工具或方法可以产生吗?

解决方案 »

  1.   

    数据量在十几亿条以上这个的确是个难题。 唯一能想到的办法,就是直接写C程序调用MYISAM引擎的API代码,不通过MYSQL,直接写MYISAM文件。 不过即使是直接用C写数据文件,写 十几亿条 *平均每条50字节 = 50G的数据,也不容易啊。
      

  2.   

    本来我想建议你使用WinSQL来插入的,一看数据量在十几亿条,。。估计效率太低。它倒是有这个功能,设置规则随机生成测试数据。我的建议是,根据你的表结构定制,使用C程序生成符合格式的文本文件,然后,使用mysql的命令行load data
    这样,效率应该是最快的。
      

  3.   


    本来也想使用load data的方式,但考虑到同样也要先写文件,就没去测试。因为要模拟一年中,不同时间(间隔5分)的数据,并涉及几百张同样的表,使用存储过程循环插入(采用批量提交的方式),效果一般。最后采用insert into select的方式,将存储过程插入ok的表数据插入到其他表中(本来每张表中的数据是不一样的,这里为了快速模拟,做了些牺牲),但效果还一般,500万条要12分钟。截止现在,还没有插完。
      

  4.   

    汗,楼上的回答相当于让中国人每人给我1块钱我都是亿万富翁一样。呵呵。CSDN真TMD无聊,一个人还不能连续发3个回复,想顶一下都不成。
      

  5.   

    用insert into select的方法,选择一个备用表,两个表来回的倒,一个来回2倍增加,应该快些吧。就是到后期的执行速度是否太慢?