こんにちは、MYSQL DBのテーブルの1つから50K +の行をフェッチしようとしています。すべてのデータを取得してテキストファイルに書き込むのに20分以上かかる。このフェッチ時間を短縮し、コードをより効率的にするためにマルチスレッドを使用できますか?どんな助けもありがとう。マルチスレッドを使用してmysqlでデータをフェッチする方法
通常のJDBC接続とResultSetMetaDataを使用して、テーブルから行をフェッチしています。
String row = "";
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from employee_details");
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
while (rs.next()) {
for (int i = 1; i < columnCount; i++) {
row = row + rs.getObject(i) + "|";// check
}
row = row + "\r\n";
}
私は以下のようにテキストファイルに値を書き出しています。
BufferedWriter writer = new BufferedWriter(new FileWriter(
"C:/Users/430398/Desktop/file/abcd.txt"));
writer.write(row);
writer.close();
私はマルチスレッドがこれをまったくスピードアップするとは思わない。ボトルネックはどこに何があるのでしょうか?スレッドに影響を与えますか? –
しかし、それを試して何が起こっているのを見ても害はありません - これであなたの実験で何を見つけましたか? –
私は単純なJDBC接続とresultmetadataを使って値を取得しようとしました。それは20分かかります。私はマルチスレッドがここで動作するかどうかは分かりません –