1
innoDBテーブルで10000個の行を更新したいとします。通常、終了には数分かかります。トランザクション内で準備されたステートメント
インターネット接続が突然中断されると、事故が発生する可能性があります。このケースではTransactionを使用することができます。トランザクションの中でPrepared Statementを使用していますが、もう1つの問題が表示されます。Prepared Statementがわかっているようにすぐにメモリから外に出るはずです(hereとhereと記載されています)。
どうすればよいですか?
Prepared Statementはより安全で、パフォーマンスは良好ですが、RAMが消費されます。 エスケープは安全性が低く、パフォーマンスは劣りますが、10000行はすべて1つのトランザクションで正常に動作します。
1回のトランザクションで複数のprepared statementを使用することはできませんか?すべてのデータがロードされ、コミットされるまで、トランザクションを開始し、準備されたステートメントを繰り返し、一度に小さなチャンクを作成します。 –
Andrew氏、私はこのアプローチを試みましたが、Prepared Statementはトランザクション全体がコミットされセッションが終了するまでメモリを解放しないようです。 – Alan
ouch:o(あなたはどんな言葉を使っていますか?) –