在使用 JDBC 时,我经常遇到像
这样的结构ResultSet rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
// Some other actions
}
我问自己(以及代码作者)为什么不使用标签来检索列值:
int id = rs.getInt("CUSTOMER_ID");
我听到的最好的解释是关于性能的。但实际上,它是否使处理速度非常快?我不相信,尽管我从未进行过测量。尽管按标签检索会慢一些,但在我看来,它提供了更好的可读性和灵 active 。
那么有人可以给我很好的解释来避免通过列索引而不是列标签来检索列值吗?两种方法的优缺点是什么(也许,关于某些 DBMS)?
最佳答案
警告:我要在这里夸夸其谈,因为这让我发疯。
99%* 的时间,人们有一些模糊的想法让事情变得“更好”,这是一种荒谬的微优化。这完全忽略了这样一个事实,即除非您一直处于非常紧张和忙碌的循环中,处理数以百万计的 SQL 结果(希望这种情况很少见),否则您永远不会注意到它。对于所有不这样做的人来说,开发人员维护、更新和修复列索引中的错误的时间成本远远大于性能极差的应用程序的硬件增量成本。
不要为这样的优化编写代码。为维护它的人编写代码。然后观察、测量、分析和优化。再观察,再测量,再分析,再优化。
优化几乎是开发的最后一步,而不是第一步。
* 图是编出来的。
关于java - ResultSet:按索引检索列值与按标签检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/186799/