当我使用索引来获取数据与列名称时,性能是否存在差异,而我正在谈论每天在服务器中执行此操作数百万次。
rs.getString(1)
vs rs.getString("columnname");
编辑: JDBC版本 Oracle JDBC驱动程序 10.2.0.4.0
答案 0 :(得分:11)
rs.getString(n);
的执行速度会稍快,因为它直接从集合中检索,而不是搜索。
您的代码的数百名未来读者将会欣赏rs.getString("columnname");
,而不必查找SQL以查看索引n
所指的内容。
答案 1 :(得分:4)
这并不重要。对数据库的命中将比访问列值慢很多倍。
rs.getString(n)
可以忽略不计。但是,它将取决于驱动程序实现和结果中的列数。大多数实现可能会使用HashMap将列名映射到索引,但不一定如此。此外,一些驱动程序可能会懒惰地构建HashMap,这意味着第一行将是列名称访问速度最慢的行。作为一个例子,JTDS对尚未在其HashMap中的列进行线性搜索。
编辑:小编辑并重新排列。没有内容改变。