`
xly_971223
  • 浏览: 1276953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql PreparedStatement和load data local infile批量插入性能比较

阅读更多
那个性能更好呢

分别插入 1W 5W 10W 结果如下

PreparedStatement        1953   9203  17641(ms)
load data local infile   125    625   1172  (ms)

可以看到两者的差距非常大

load data local infile比PreparedStatement强15倍左右

初步判断主要原因应该是PreparedStatement 要写redo logfile,所以拖慢了


1
0
分享到:
评论
3 楼 xly_971223 2009-07-22  
jwinder 写道
兄弟MYSQL的批量插入可以用引擎InnoDB。
而且你的插入操作不会说for一条一条插入吧?

insert into tableName (x,xx,xxx) values(x,xx,xxx),(xx,xxx,xxxx)…,
一条sql插入多个值。

数据先放内存然后写入数据库,并且多线程入库。
数据库入库的速度能达到3000+条/秒的速度。



恩 回头测试一下

之前是用 jdbc preparedstatement插入的[url] http://xuliangyong.iteye.com/admin/blogs/237728[/url]
2 楼 jwinder 2009-07-22  
兄弟MYSQL的批量插入可以用引擎InnoDB。
而且你的插入操作不会说for一条一条插入吧?

insert into tableName (x,xx,xxx) values(x,xx,xxx),(xx,xxx,xxxx)…,
一条sql插入多个值。

数据先放内存然后写入数据库,并且多线程入库。
数据库入库的速度能达到3000+条/秒的速度。


1 楼 heyjava 2009-07-14  
做批量插入用load data local infile 是毫无质疑.
但相差那么大,估计是BinLog 的缓存innodb_log_buffer_size设置太小了 或者innodb_buffer_pool_size设置太小..导致出现频繁IO操作

相关推荐

    jdbc-批量插入数据

    对于大型数据集,可能需要考虑使用数据库特定的批量插入优化,例如MySQL的LOAD DATA INFILE命令,或者通过BULK INSERT在SQL Server中进行批量导入。这些方法通常比JDBC的批量处理更快,但不适用于所有情况。 在实际...

    jdbc批量插入大字段

    - **批量大小**:适当调整批量插入的大小,找到性能和内存消耗之间的平衡点。批量过大可能导致内存溢出,过小则可能无法充分利用批处理的优势。 - **事务管理**:将批量插入操作包裹在事务中,可以确保数据的一致...

    SQLLITE的批量插入。。。

    批量插入在处理大量数据时尤其有用,它可以显著减少与数据库交互的次数,从而降低系统资源的消耗并提升性能。在SQLite中,我们可以使用多种方法实现批量插入。 1. **多行INSERT语句**:这是最基础的批量插入方式。...

    java 下执行mysql 批量插入的几种方法及用时

    在Java中,执行MySQL批量插入数据有多种方法,每种方法在性能上都有所不同。以下是对这些方法的详细分析: 方法1:单条插入 这是最基础的插入方式,每次循环都创建一个新的SQL语句并执行。这种方法的效率最低,因为...

    JDBC批量插入 更新 删除等操作

    **批量插入**主要用于数据导入和日志记录等场景。例如,在日志系统中,通常会将日志信息先写入到文件中,然后再定期批量导入到数据库中进行存储和分析。下面详细介绍JDBC批量插入的具体实现方式: 1. **使用...

    5、批量插入海量数据之Java插入MySql(csdn)————程序.pdf

    还可以利用数据库的批量导入功能,如LOAD DATA INFILE,或者使用第三方工具如MySQL的`mysqlimport`命令。 总之,优化Java批量插入MySQL的策略包括但不限于使用JDBC批处理、PreparedStatement、事务管理、连接池以及...

    MySql.Data.dll(.NET4.0版本)

    7. **预编译SQL语句(PreparedStatement)**:为了提高性能和安全性,MySQL.Data.dll支持预编译的SQL语句,避免SQL注入攻击。 8. **数据库元数据访问**:提供获取数据库、表、视图和索引等信息的能力。 9. **异步...

    三种JDBC批量插入编程方法的比较

    在`JDBCBatchInsertTest.java`中,你可能会看到对这些批量插入方法的性能测试,通过计时和比较来确定哪种方法更适合特定的场景。 总结来说,选择JDBC批量插入方法应基于数据插入的特性和需求。PreparedStatement...

    JDBC连接MySQL数据库批量插入数据过程详解

    "JDBC连接MySQL数据库批量插入数据过程详解" 本文主要介绍了使用JDBC连接MySQL数据库批量插入数据的过程详解,通过示例代码详细介绍了批量插入数据的步骤,对大家的学习或者工作具有一定的参考学习价值。 一、JDBC...

    利用poi获取excel数据批量插入大量数据到mysql

    本教程将详述如何使用Apache POI库读取Excel数据,并通过Java的JDBC接口批量插入到MySQL数据库中。Apache POI是Java平台上的一个开源项目,它允许程序员创建、修改和显示Microsoft Office格式的文件,其中包括Excel...

    Java 实现从Excel批量导入数据到MySQL

    6. **执行SQL**:使用`Statement`或`PreparedStatement`执行SQL语句,批量插入数据。为提高效率,可以使用批处理(batch processing),将多条SQL语句打包一起执行。 7. **错误处理**:在执行过程中捕获并处理可能...

    批量插入的simple

    在IT行业中,批量插入(Bulk Insert)是一种优化数据库性能的技术,尤其在处理大量数据时非常有用。本篇文章将深入探讨批量插入的概念、实现方式以及它在实际应用中的优势。 批量插入允许开发者一次性提交多条记录...

    MySql练习3:使用PreparedStatement插入宠物信息.zip

    MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip

    java批量插入Oracle数据方法

    在Java中,批量插入数据到Oracle数据库主要依赖于`PreparedStatement`对象,该对象允许我们预编译SQL语句并多次执行,从而提高效率。相比于单条插入,批量插入减少了网络往返次数,提高了整体的吞吐量。 ### 二、...

    MySql.Data

    MySQL.Data是.NET Framework下的一个库,它为开发者提供了...总的来说,MySQL.Data是.NET开发者在MySQL环境中进行数据库开发不可或缺的工具,它简化了.NET应用程序与MySQL数据库的集成,提供了丰富的功能和高效的性能。

    【IT十八掌徐培成】Java基础第23天-02.sql注入-preparedstatement-批量插入.zip

    同时,熟练运用PreparedStatement的批量插入功能,可以有效地提高数据库操作的效率,尤其在处理大数据量场景时显得尤为重要。在实际项目中,结合最佳实践,如合理设置批处理大小,能够进一步优化系统性能。

    mybatisr代码生成插件(中文注释,生成批量插入及修改)

    在这个自定义版的MBG插件中,它特别加入了中文注释,使得代码更符合中国开发者阅读习惯,并且扩展了功能,支持批量插入和批量修改操作,这对于处理大量数据时非常实用。此外,它还能处理一对多和多对多的关系映射,...

    Struts2批量插入

    对于数据库操作,MySQL Workbench、Oracle SQL Developer等可视化工具可以帮助编写和执行SQL语句,验证批量插入的效果。 总的来说,Struts2批量插入涉及到前端表单提交、Action处理、数据库操作等多个环节,理解并...

    java连接mysql数据库实现单条插入和批量插入

    Java 连接 MySQL 数据库实现单条插入和批量插入 Java 连接 MySQL 数据库实现单条插入和批量插入是 Java 编程语言中的一种常见操作。在实际项目中,我们经常需要将数据插入到 MySQL 数据库中,以便于存储和管理数据...

    java代码oracle数据库批量插入

    ### Java代码实现Oracle数据库批量插入的关键知识点 #### 1. JDBC连接配置 - **JDBC URL**: `jdbc:oracle:thin:@IP:1521:orcl`,这里的URL指定了连接到Oracle数据库的方式。其中`@IP:1521:orcl`中的IP是指数据库...

Global site tag (gtag.js) - Google Analytics