第 11 章 数据库性能的最佳实践

本章主要探讨由 Java 驱动的数据库应用的性能。访问数据库的应用程序经常会受制于一些与 Java 不直接相关的性能问题,譬如使用的数据库有 I/O 瓶颈,或者由于关键索引缺失,导致 SQL 查询需要做全表扫描。要解决这些问题,不必调优 JVM,也不需要修改应用代码。处理数据库相关的性能问题需要我们(从其他的源头)了解如何为数据库应用编程及调优。

但这并不是说,使用数据库的应用的性能与 JVM 管理的对象及使用的 Java 技术没有多少相关性。恰恰相反,为了获得更优的性能,我们要确保数据库和应用都得到最好的调优,运行于最佳的代码路径之上。

示例数据库

本章的例子使用了一个样本数据库,存储了 128 支股票全年的交易数据。一年中有 261 个工作日。

每支股票的交易价格保存在一张名为“STOCKPRICE”的表内,这张表的主键分别是股票代号和交易日期。所以这张表中有 33 408 条记录(即 128×261)。

每一支股票都有由五个相关的期权构成的集合,这些期权也都是每日订价。“STOCKOPTIONPRICE”表保存的数据包括股票代码、日期和代表期权编号的整型数,其中股票代码是主键。所以这个表包含 167 040 行数据(即 128×261×5)。