~600K 行からなる XML ファイルを解析しています。XML からデータベースへのデータの解析と挿入は、SAX を使用して解析し、LOAD DATA INFILE (.txt ファイルから) を使用してデータベースに INSERT するため、問題ではありません。txt ファイルは、JDBC を使用して Java で設定されます。これらすべてがデータベースに入力されるまでに 5 秒ほどかかります。
私のボトルネックは現在、複数の SELECT クエリを実行しています。基本的に、特定の XML タグにヒットするたびに、SELECT クエリを呼び出して、別の DB テーブルからデータを取得します。これらの SELECT クエリを追加すると、入力時間が 2 分になりました。
例えば:
- 書籍、記事、論文などで構成される XML を解析しています。
- 各書籍/記事には、isbn、タイトル、著者、編集者、発行者などの子要素があります。
- 各著者/編集者/発行者で、データベース内のテーブルにクエリを実行する必要があります。
- 値が Tolkien の author タグに遭遇したとしましょう。
- author_table というデータベースに既に存在するテーブルをクエリする必要があります
- クエリは [name = 'Tolkien' の author_table から author_id を選択] です。
ここでボトルネックが発生しています。
今私の質問は:これをスピードアップする方法はありますか?
ところで、私が 2 分が長いと思う理由は、これが宿題であり、データベースへの入力がまだ終わっていないからです。DB の作成全体に 5 分かかると見積もっています。したがって、パフォーマンスの最適化に関するアドバイスを求めている理由です。