インデックスを使用してデータと列名を取得し、サーバーで1日に何百万回もこの操作を実行することについて話している場合、パフォーマンスに違いはありますか?
rs.getString(1)
vsrs.getString("columnname");
編集:JDBCバージョンOracleJDBCドライバー10.2.0.4.0
rs.getString(n);
検索ではなくコレクションから直接取得するため、パフォーマンスはわずかに速くなります。
あなたのコードの何百人もの将来の読者はrs.getString("columnname");
、インデックスが何を参照しているかを見るためにSQLを調べる必要はなく、感謝するでしょn
う。
それは本当に重要ではありません。データベースへのヒットは、列の値にアクセスするよりも何倍も遅くなります。
rs.getString(n)
無視できるほど速くなります。ただし、ドライバーの実装と結果の列数によって異なります。ほとんどの実装では、HashMapを使用して列名をインデックスにマップする可能性がありますが、必ずしもそうとは限りません。また、一部のドライバーはHashMapを遅延して構築する場合があります。これは、最初の行へのアクセスが列名で最も遅くなることを意味します。例として、JTDSは、HashMapにまだ含まれていない列を線形検索します。
編集:マイナーな編集と再配置。コンテンツの変更はありません。