JDBC 性能问题

hebiqibinqu 2010-06-07 02:52:33
有个30000行记录的,3MB大小的txt文件。

使用什么样方式插入到MySql数据库。速度比较快?
...全文
73 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hebiqibinqu 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dr_lou 的回复:]

引用 2 楼 hebiqibinqu 的回复:
引用 1 楼 goldenfish1919 的回复:

没必要把文件本身存到数据库,存个文件路径名不就快了

也行是我没说清楚。
我补充下。。。

我是要把3万行记录插入到一张表里的3万条记录。


批量提交吧。

Java code

conn.setAutoCommit(false);
pstmt = conn.pr……
[/Quote]

不错。非常快啊。4秒搞定啊。
谢谢啊。有机会请你吃饭哈
海会圣贤 2010-06-07
  • 打赏
  • 举报
回复
强大,关注。
hebiqibinqu 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 closewbq 的回复:]

写什么程序呀,先把txt的记录中的记录,通过组装成sql语句。
直接粘贴到mysql的可视化界面,运行就行了。 - -!
[/Quote]

确实是个好方法。对一个txt文件还可以。。

我需求是每天定时处理一个这样的文件。。
zmEagle 2010-06-07
  • 打赏
  • 举报
回复
那位朋友了解apache下的ab压力测试的,请指教一下
ab.exe这个文件在什么地方?
是在tomcat的bin目录下吗?
closewbq 2010-06-07
  • 打赏
  • 举报
回复
写什么程序呀,先把txt的记录中的记录,通过组装成sql语句。
直接粘贴到mysql的可视化界面,运行就行了。 - -!
hebiqibinqu 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 goldenfish1919 的回复:]

PreparedStatement.addBatch()
[/Quote]

呵呵。我也是怎么想的。
dr_lou 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hebiqibinqu 的回复:]
引用 1 楼 goldenfish1919 的回复:

没必要把文件本身存到数据库,存个文件路径名不就快了

也行是我没说清楚。
我补充下。。。

我是要把3万行记录插入到一张表里的3万条记录。
[/Quote]

批量提交吧。


conn.setAutoCommit(false);
pstmt = conn.prepareStatement(sqlText);
for(你的循环){
pstmt.setString(...);设置属性
pstmt.addBatch();

if (i % 500 == 0) {
pstmt.executeBatch();
conn.commit();
pstmt.clearBatch();
}

}//end-for
pstmt.executeBatch();
conn.commit();
李遒 2010-06-07
  • 打赏
  • 举报
回复
分批处理,例如200条一批,在程序里拼成200条insert语句,直接执行。
若鱼1919 2010-06-07
  • 打赏
  • 举报
回复
PreparedStatement.addBatch()
dr_lou 2010-06-07
  • 打赏
  • 举报
回复
存路径最快。存内容无招。文件大小就是个问题。
hebiqibinqu 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 goldenfish1919 的回复:]

没必要把文件本身存到数据库,存个文件路径名不就快了
[/Quote]
也行是我没说清楚。
我补充下。。。

我是要把3万行记录插入到一张表里的3万条记录。
若鱼1919 2010-06-07
  • 打赏
  • 举报
回复
没必要把文件本身存到数据库,存个文件路径名不就快了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧