这部分与jdbc无关,是对于mysql优化的普通技巧
- 利用查询缓存。不要把函数直接写在sql语句里;
- 当只需要一条记录时查询加上LIMIT 1;
- 尽量避免SELECT *这样写;
- 用连接池;
- 建索引;
更多关于mysql的优化
jdbc的优化:
- 尽量少用元数据方法;
- 尽量避免null。mysql中对值为null情况花费更多的空间和处理而加重负担,应该指定专门的值来表示空值,在方法调用时传参也要避免null;
- 善用哑查询。在仅想得到表信息等而不需要返回记录的情况下,使用“select * from tableName where 1=0”这样的哑查询就能免于遍历;
善用预处理(PreparedStatement,PreparedCall)。PreparedStatement不但具有一次编译重复使用的优势,而且因为jdbc默认将参数以字符串形式传给数据库,而用PreparedStatement设参数则可以显式地指定数据类型,避免参数传递和来回转换的负担;
pstmt=conn.preparedStatement("insert into test_table(......) values(....?)";
[code="java"]pstmt.setString(1,"aaa";
pstmt.addBatch();
pstmt.setString(1,"bbb");
pstmt.addBatch();
.....
pstmt.executeBatch();
- 合理选择excute方法,杀鸡就用鸡刀。execute(String sql)方法返回一个boolean值,它执行任意复杂的sql语句,可以产生多个结果集。如果有结果产生返回 true,如果没有结果集产生或仅是一个更新记数则返回 false。它产生的结果集可以通过getResultSet()和getMoreResults()获得,更新记数可通过getUpdateCount()获得。显然execute(String sql)方法的使用要复杂一些,因此如果只是简单的查询或更新操作请使用executeQuery(String sql)和executeUpdate(String sql)方法。executeUpdate(String sql)能执行INSERT,UPDATE,DELETE语句,及DDL和DML命令(此时返回值为0);
- 批执行更高效。stmt.addBatch(String sql); stmt.executeBatch();
- 最好手动提交。不但可以可以保证数据原子性,而且对新能提高留下余地
try{
boolean commitStat = connection.getAutoCommit();
connection.setAutoCommit(false);
// TODO: 用PreparedStatement 性能比Statementh好.
connection.commit();
connection.setAutoCommit(commitStat);
} catch(SQLException e){
} finally{
// TODO
if(connection!=null){
connection.close();
}
}
- 及时显式地关闭rs、stmt和conn(conn可以交由连接池管理);
- 使用数据库系统的强大查询功能去组织数据。这样程序运行是和数据库服务的交互次数少,数据库返回给程序的记录条数少的多,所以性能有很大的提高;
- 在rs中,正确使用get和set方法。使用列序号而不是字段名作为参数性能比较高;例如
getInt(1,100);
setString(2,"aaaa");
比
getInt("id","100");
setString("name","aaaa");
性能好
以下并不完全理解,先记着:
- 建立conn时适当合适的参数。setDefaultRowPrefetch(int) 和 setDefaultBatchValue(int) 两个参数可以优化连接;
Properties props=new Properties();
// TODO username pwd等参数
props.put("defaultRowPrefectch","30");
props.put("dufaultBatchValue","5");
Connection con=DriverManager.getConnection(url, props);
- 通过setFetchSize()和getFectchSize()方法来设定和查看这个参数。这个参数对体统的性能影响比较大,太小会严重地降低程序地性能.Connection Statement ResultSet都有这个参数,他们对性能地影响顺序是:rs>stmt>conn;
- 适当的选择事务的隔离级别。
TRANSACTION_READ_UNCOMMITED 性能最高;TRANSACTION_READ_COMMITED 快;TRANSACTION_REFEATABLE_READ 中等;RANSACTION_SERIALIZABLE 慢
- 在rs优化上,设置适当的滚动方向。有3个方向FETCH_FORWORD,FETCH_REVERSE FETCH_UNKNOWN单向滚动性能比较高;
更多:
分享到:
相关推荐
### JDBC优化技巧 1. **使用PreparedStatement**:预编译的SQL语句比Statement更安全,且性能通常更好。 2. **设置批处理**:对于大量相似的操作,批处理可以显著提升性能。 3. **关闭自动提交**:在事务处理中...
【JDBC学习笔记】 JDBC,全称Java Database Connectivity,是Java编程语言中用来规范客户端程序如何访问数据库的应用程序接口,由Sun Microsystems公司提出。它为程序员提供了标准的API,使得开发者可以使用Java...
**JDBC(Java Database Connectivity)简介** JDBC是Java编程语言中用来规范客户端程序如何访问数据库的应用程序接口,由Sun ...在提供的压缩包文件中,`JDBC笔记.doc`可能包含了更详细的讲解和示例,建议参考学习。
JDBC优化技巧 - 使用PreparedStatement代替Statement。 - 使用批处理操作批量插入。 - 尽量减少结果集大小,避免全表扫描。 - 合理设置连接池大小,避免过多连接创建销毁。 通过深入理解和熟练运用这些JDBC知识点...
赛尔凯达的这份jdbc笔记不仅涵盖了以上基础知识,可能还深入探讨了高级主题,如存储过程、游标、批处理优化、JDBC与ORM框架的集成等,是学习和提升JDBC技能的宝贵资料。通过学习和实践,开发者能够熟练地使用JDBC...
在本篇JDBC学习笔记中,我们将深入探讨JDBC的基础知识、核心概念以及实际应用。 一、JDBC基础 1. JDBC驱动程序:JDBC驱动是连接Java应用程序和数据库之间的桥梁。根据实现方式,JDBC驱动分为四种类型:类型1(JDBC...
总的来说,"达内jdbc学习笔记"涵盖了JDBC基础、数据库连接、SQL执行、结果集处理、事务管理和性能优化等多个关键知识点,对Java开发者来说是宝贵的参考资料。通过深入学习和实践,可以熟练地使用Java进行数据库操作...
8. **性能优化** - 使用`PreparedStatement`代替`Statement`。 - 通过设置合适的连接池大小,避免频繁创建和关闭连接。 - 使用批处理操作批量插入或更新数据。 - 使用数据库的索引优化查询速度。 9. **JDBC与...
通过以上知识,你可以熟练地使用JDBC进行MySQL数据库的开发工作,包括插入、删除、更新和查询数据,以及进行事务处理和性能优化。结合实际项目经验,你会更深入理解JDBC在实际应用中的作用和价值。
这份经典的JDBC笔记很可能包含了以上所有内容,甚至可能有更多关于JDBC的最佳实践、性能优化、数据库连接池配置以及如何处理复杂查询的实例。对于学习者来说,这是一份不可多得的参考资料,可以帮助他们更好地理解和...
**薄型驱动**(Thin Driver):也是纯Java实现,但更侧重于性能优化,目前是Oracle等数据库推荐使用的首选驱动方式。 #### 二、JDBC环境配置 1. **注册驱动**:首先,需要将对应的JDBC驱动类加载到JVM中,这通常...
JDBC优化** - **使用PreparedStatement避免SQL注入**。 - **关闭资源的正确顺序**:先关闭`ResultSet`,再关闭`Statement`,最后关闭`Connection`。 - **使用Statement的batchUpdate方法提高性能**。 **9. 示例...
此外,JDBC的连接池管理也是优化应用程序性能的关键。 4. **笔记和PPT**: 自学资料通常包括对每个主题的详细解释、示例代码、练习题和解决方案。笔记可能会深入讲解概念,提供清晰的步骤和解释,而PPT可能更注重...
优化JDBC包括合理使用PreparedStatement,避免过度使用数据库连接,及时关闭资源,批量处理数据,以及根据需求调整数据库连接池配置等。 总结,JDBC是Java与数据库交互的重要工具,掌握其基本使用和优化技巧对于...
### 传智播客JDBC学习笔记精要 #### JDBC简述与连接 ...综上所述,传智播客的JDBC学习笔记涵盖了从基础的数据库连接到高级的事务管理、连接池优化等多个层面的内容,是Java开发者学习和掌握JDBC技术的重要参考资料。
**四、JDBC优化技巧** 1. **批处理**:使用PreparedStatement的`addBatch()`和`executeBatch()`提高多条SQL执行效率。 2. **预编译SQL**:PreparedStatement能有效防止SQL注入,且执行多次相同SQL时性能更优。 3....
总之,JDBC是Java程序员必备的技能之一,它使得我们可以灵活地操作数据库,执行复杂的SQL语句,进行事务管理,并有效优化数据库交互性能。通过熟练掌握JDBC,开发者能够更好地设计和实现数据驱动的Java应用程序。
### JDBC学习笔记知识点详解 #### 一、JDBC概述与选择 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供...
在JDBC中处理大量数据时,批量更新(Batch Updates)能显著提高性能。通过调用Statement对象的addBatch()方法添加SQL语句,然后执行executeBatch()来一次性提交所有操作。 最后,确保正确关闭数据库连接,避免资源...