QA@IT
«回答へ戻る

回答を投稿

work_noの整合性を維持したいのでロックしたいということでしょうか。

どの部分の負荷を気にしているかにもよりますが、個人的に気にするほどでもないとは思ってます。
ただ実際のところは測ってみるしかないかと思います。仮にInsert文の作成にすごく時間がかかるなら、その間ブロックされますのでそれはそれで問題ですし、csvの件数にも左右されるでしょう。

なお、LOCK TABLES自体は使うことで高速化が望まれます。


以下、質問の内容とは少し外れますので回答されなくてもかまいません。
トランザクションがループの中にあっても問題ないのですか?
そのforeachでcsvの行を回している様に思われるんですが途中でエラーが発生した場合にcsvの一部が取り込まれる状態になるように思われますが(コミットしてるので)、問題ないです?
csvの件数が多くなければトランザクションごと外のほうがいいような。

ちなみにLock Tablesはトランザクションアンセーフらしいので、呼ぶとコミットされます。

work_noの整合性を維持したいのでロックしたいということでしょうか。  
どの部分の負荷を気にしているかにもよりますが、個人的に気にするほどでもないとは思ってます。
ただ実際のところは測ってみるしかないかと思います。仮にInsert文の作成にすごく時間がかかるなら、その間ブロックされますのでそれはそれで問題ですし、csvの件数にも左右されるでしょう。

なお、LOCK TABLES自体は使うことで高速化が望まれます。

---
以下、質問の内容とは少し外れますので回答されなくてもかまいません。
トランザクションがループの中にあっても問題ないのですか?
そのforeachでcsvの行を回している様に思われるんですが途中でエラーが発生した場合にcsvの一部が取り込まれる状態になるように思われますが(コミットしてるので)、問題ないです?
csvの件数が多くなければトランザクションごと外のほうがいいような。

ちなみにLock Tablesはトランザクションアンセーフらしいので、呼ぶとコミットされます。