Java の接続を介して解析し、MySQL データベースに挿入する生の html ファイルが大量にあります。
「REPLACE INTO」ステートメントとこのメソッドを使用しています:
public void migrate(SomeThread thread) throws Exception{
PreparedStatement threadStatement = SQL.prepareStatement(threadQuery);
thread.prepareThreadStatement(threadStatement);
threadStatement.executeUpdate();
threadStatement.close();
for(SomeThread.Post P : thread.threadPosts){
PreparedStatement postStatement = SQL.prepareStatement(postQuery);
P.preparePostStatement(postStatement);
postStatement.executeUpdate();
postStatement.close();
}
}
私は自分のプログラムの 3 つの個別のインスタンスをそれぞれ独自のコマンド プロンプトで実行しており、解析およびコミットする html の個別のディレクトリを使用しています。
私は HeidiSQL を使用してデータベースを監視していますが、たとえば、ある時点でテーブルに 500,000 行あることがわかり、HeidiSQL を閉じて後でもう一度チェックして、 440,000 行。私が使用している 2 つのテーブルでも同じことが起こります。
私のテーブルは両方とも「id」と呼ばれる主キーを使用しており、それぞれの ID には独自のドメインがありますが、値が重複して互いに上書きしている可能性はありますか? SQLはテーブルの「ローカル」ID値を区別すると思うので、これが問題になるかどうかはわかりません。
それ以外の場合、それぞれがDBに接続している3つの個別のインスタンスを実行しているため、1つの行がコミットされているときに何らかの魔法が発生し、実行が別のコミットステートメントにスワップし、テーブル、次に最初のコミットに戻り、データベースに収集された行数をロールバックさせるいくつかの魔法を実行します。
私はSQLにかなり慣れていないので、どこから始めればよいかわかりません.誰かが一体何が起こっているのかについての考えを持っていて、私を正しい方向に向けることができれば、本当に感謝しています.
ありがとう