我正在研究数据库性能基准测试java应用程序,作为硕士论文的一部分 应用程序启动几个执行选择的线程。然后收集查询的平均响应时间 看看结果我有疑问,如果BLOB列真的从数据库加载(响应时间几乎没有差异,数据库中的BLOBS都没有20kB或100kB或200kB。数据不能缓存在RAM中,因为sumarized BLOBs的体积比几倍大,比机器RAM大小)。我正在使用MySQL和MySQL Cluster数据库。
我的选择如下:
SELECT blob_column FROM tab WHERE <<some conditions on other columns>>
以下是执行基准测试的应用程序的一部分:
int invokedCommands = 0;
long startTime = System.currentTimeMillis();
for (int i = 0; i < params.size(); i++) {
try {
for (int j = 0; j < params.get(i).size(); j++) {
preparedStatement.setInt(j+1, params.get(i).get(j));
}
resultSet = preparedStatement.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
invokedCommands++;
}
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
synchronized(resultList) {
resultList.add((double) elapsedTime / invokedCommands);
}
准备preparedStatement
时,请准备好提供WHERE
个参数
使用上述方法时,我可以100%确定,从磁盘读取BLOB并发送到客户端应用程序吗?