5
回答
mysql添加百万级数据
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
jdbc连接数据库,百万级大批量数据添加,怎样可以高效的实现.
举报
頸頸滴
发帖于6年前 5回/1K+阅
共有5个答案 最后回答: 6年前

引用来自“蟋蟀哥哥”的答案

no index,no innodb

就一张表,表的设计可以先不考虑,主要从java代码着手

我的设计是: 读取数据, 将读取的数据放入list集合,每到1000条的时候调用存储过程向数据库中插入一次, 自己测试了下,这样做速度还是很慢.

先不要创建key和主键,等最后再创建。

插入的时候使用预编译语句进行批更新(batch), 这个可以查Java API,就不细说了。也可以用:

insert into t_table values(....), (....)  这种一次插入多条的语句,不过个人感觉没预编译好,而且容易因为请求包过大被MySQL限制。

之前试过为搞了1亿条测试数据,大约挂了一晚上,8个小时左右。

另外,原因不明,改用四个线程用四个连接同时插,效率反倒比单线程低。

引用来自“逝水fox”的答案

先不要创建key和主键,等最后再创建。

插入的时候使用预编译语句进行批更新(batch), 这个可以查Java API,就不细说了。也可以用:

insert into t_table values(....), (....)  这种一次插入多条的语句,不过个人感觉没预编译好,而且容易因为请求包过大被MySQL限制。

之前试过为搞了1亿条测试数据,大约挂了一晚上,8个小时左右。

另外,原因不明,改用四个线程用四个连接同时插,效率反倒比单线程低。

问下 你当时每条数据有多少字节?

引用来自“頸頸滴”的答案

引用来自“逝水fox”的答案

先不要创建key和主键,等最后再创建。

插入的时候使用预编译语句进行批更新(batch), 这个可以查Java API,就不细说了。也可以用:

insert into t_table values(....), (....)  这种一次插入多条的语句,不过个人感觉没预编译好,而且容易因为请求包过大被MySQL限制。

之前试过为搞了1亿条测试数据,大约挂了一晚上,8个小时左右。

另外,原因不明,改用四个线程用四个连接同时插,效率反倒比单线程低。

问下 你当时每条数据有多少字节?

全部插完数据文件差不多14G,表没有设定压缩的,有一些昵称啊,地址之类的文字字段在里面。
顶部