数据库在操作少量测试数据和大量数据的时候,表现行为上有很大的差异。通常,在开发过程前期,人们不会关注数据库性能的问题,但是随着时间的发展,人们必须采取一些措施来保证数据库在大量数据的情况下正常工作。Derby这个完全Java开发的开源的数据库也不例外,因此你必须保证它不会成为你程序的一个瓶颈。尽管人们可以在Derby的手册中找到关于这个话题全面的资料,我还是想更详尽的关注一下这些问题,基于我的经验提供一些具体的例子。本文将着重于那些由在大的数据表中选择查询数据而产生的程序性能问题。首先,有很多关于调整Derby属性(诸如页面大小和缓存大小等)的技巧。修改这些参数可以在一定程度上调整数据库的性能,但是在通常情况下,更主要的问题来自与你的程序和数据库的设计,因此,我们必须首先关注这些问题,最后再来考虑Derby的属性。在接下来的段落里,我将介绍一些能够优化程序中有问题部分的技术。但是,和其他性能优化操作一样,我们需要在优化前先测量并确认问题所在。Hadoop集群、hive、Derby安装部署详细说明 http://www.linuxidc.com/Linux/2012-01/52686.htm体验纯Java数据库——Derby http://www.linuxidc.com/Linux/2011-10/46033.htm[推荐]专家讲价优化Derby数据库技巧 http://www.linuxidc.com/Linux/2007-04/3476.htm配置Hive使用嵌入式Derby或客服模式Derby方法 http://www.linuxidc.com/Linux/2012-10/73105.htm使用Derby数据库首次连接时的ERROR 42Y07问题 http://www.linuxidc.com/Linux/2012-08/67279.htm
一个简单的例子让我们从一个简单的例子开始:假设我们Web程序中拥有一个“search/list”的页面,要处理一个有接近100,000行的表,并且那个表不是很小的(至少有10栏)。用简单的JDBC来写一个例子,这样我们可以专注在数据库和JDBC问题上来。这篇文章中介绍的所有准则对所有的面向对象的映射工具都适用。为了使得用户能够列出一个大的表,通常使用下面简单的查询语句。
<CCID_NOBR>| <CCID_CODE>select * from tbl |
对应的JDBC语句如下:
<CCID_NOBR>| <CCID_CODE>Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();Connection connection = DriverManager.getConnection ("jdbc:derby://localhost:1527/testDb;");Statement stmt = connection.createStatement();ResultSet rs = stmt.executeQuery("select * from tbl");ArrayList allResults = new ArrayList();while (rs.next()) {// Object-Relation mapping code to populate your// object from result set rowDomainObject domainObject = populate(rs);allResults.add(modelObject);}System.out.println("Results Size: " + allResults.size()); |
在这儿,我们碰到了第一个问题。执行这样的代码,并产生100,000(或更多)个domain对象将肯定会导致java用完堆栈空间,产生一个“java.lang.OutOfMemoryError”的错误。对于初学者来说,我们首先必须找到一个方法来使得这个程序工作。
| 【内容导航】 |
| 第1页:一个简单的例子 | 第2页:分页Result Sets |
| 第3页:确保使用索引(避免全表扫描) | 第4页:使用合适的索引顺序 |
| 第5页:重建索引 | 第6页:多栏索引 |
| 第7页:索引的缺点、结论 | |
简单方法完全删除Oracle数据库设置Oracle来同时访问多个SQL Server相关资讯 Derby
- 设置Derby做为Linux/Windows自启动 (02/07/2015 10:13:01)
- Derby数据库的安装配置及使用 (07/17/2014 08:31:32)
- Apache Derby 10.10.2.0 发布 (04/18/2014 08:50:14)
| - Apache Derby 10.11.1.1 发布下载 (08/28/2014 07:37:48)
- Java数据库服务器 Apache Derby (07/17/2014 08:28:07)
- Apache Derby 10.10.1.1 发布,支 (04/18/2013 18:51:05)
|
本文评论 查看全部评论 (0)