- 主题:Java如何在5到15秒内插入2万到10万条数据?
PostgreSQL下,只能用Java和MyBatis;
比如2万条 分成20个线程 每个线程1000条数据
有人说写成1个语句最高效 ->
1000条数据拼接成1个insert语句
有人说写成1000个语句最高效 ->
1000个语句,然后设置ExecutorType.BATCH,然后一次commit提交
(不能回滚,必须再手动写一个删除语句;如果有异常就将刚才插入的所有数据再用一个语句删除)
到底哪一种好?
--
修改:townhope FROM 223.104.61.*
FROM 223.104.61.*
自己试试
pg写入io最高的是unlogged直接csv写入,可以把磁盘io打满
【 在 townhope 的大作中提到: 】
: PostgreSQL下,只能用Java和MyBatis;
: 比如2万条 分成20个线程 每个线程1000条数据
: 有人说写成1个语句最高效 ->
: ...................
--
FROM 42.198.80.*
这个跟Java有什么关系?写入效率的瓶颈
一般都在存储上啊。
【 在 townhope 的大作中提到: 】
: PostgreSQL下,只能用Java和MyBatis;
:
: 比如2万条 分成20个线程 每个线程1000条数据
: ...................
--来自微微水木3.5.12
--
FROM 24.22.244.*
得靠数据库吧。
数据库支持才行
【 在 townhope 的大作中提到: 】
: PostgreSQL下,只能用Java和MyBatis;
: 比如2万条 分成20个线程 每个线程1000条数据
: 有人说写成1个语句最高效 ->
: ...................
--
FROM 223.104.41.*
1000条语句铁定有问题吧。
给magento导入数据,效率最低的就是用php的mapping,效率最高的是直接导入csv
【 在 townhope 的大作中提到: 】
: PostgreSQL下,只能用Java和MyBatis;
: 比如2万条 分成20个线程 每个线程1000条数据
: 有人说写成1个语句最高效 ->
: ...................
--
FROM 213.95.148.*
直接jdbc 批处理
【 在 townhope 的大作中提到: 】
: PostgreSQL下,只能用Java和MyBatis;
: 比如2万条 分成20个线程 每个线程1000条数据
: 有人说写成1个语句最高效 ->
: ...................
--
FROM 124.64.23.*
我也支持这个。
【 在 nextworld8 的大作中提到: 】
: 直接jdbc 批处理
--
FROM 223.104.41.*
如果是先将数据写入到sql文件,然后再调用命令行导入呢?
【 在 townhope 的大作中提到: 】
: PostgreSQL下,只能用Java和MyBatis;
: 比如2万条 分成20个线程 每个线程1000条数据
: 有人说写成1个语句最高效 ->
: ...................
--
FROM 27.189.92.*
批量写入吧
--
FROM 210.75.218.*
10万条轻松
【 在 townhope 的大作中提到: 】
: PostgreSQL下,只能用Java和MyBatis;
:
: 比如2万条 分成20个线程 每个线程1000条数据
:
: 有人说写成1个语句最高效 ->
: 1000条数据拼接成1个insert语句
:
: 有人说写成1000个语句最高效 ->
: 1000个语句
: ..................
发自「今日水木 on M2011K2C」
--
FROM 221.223.192.*