高速データ ストリームを消費しており、次の手順を実行して MySQL データベースにデータを保存しています。新着アイテムごとに。
- (1) 着信アイテムを解析します。
- (2) 「INSERT ... ON DUPLICATE KEY UPDATE」を数回実行する
INSERT ... ON DUPLICATE KEY UPDATEを使用して、データベースへの追加のラウンドトリップを 1 回排除しました。
全体的なパフォーマンスを改善しようとしている間、次の方法で一括更新を行うことを検討しました。
- (1) 着信アイテムを解析します。
- (2) "INSERT ... ON DUPLICATE KEY UPDATE" で SQL ステートメントを生成し、ファイルに追加します。
ファイル内の SQL ステートメントを定期的にデータベースにフラッシュします。
2 つの質問:
- (1) これはデータベースの負荷に良い影響を与えますか?
- (2)完全なフラッシュ後にのみインデックスが再構築されるように、ステートメントをデータベースにフラッシュするにはどうすればよいですか? (トランザクションを使用していますか?)
更新: Perl DBI + MySQL MyISAM を使用しています。
コメントをお寄せいただきありがとうございます。