我從我的網站向我的用戶發送批量邀請。爲此,我將包含電子郵件的逗號分隔字符串傳遞給我在mysql中的存儲過程。在這個存儲過程中,一個while循環解析每個電子郵件(使用substring()以逗號分隔)並檢查現有數據庫,然後檢查是否存在,如果該電子郵件已存在,則使用guid生成電子郵件鏈接。該過程對於小批量(例如,低於200-250個電子郵件)工作正常,但如果批量較大(超過250個電子郵件),則整個過程問題和下一個請求會導致死鎖錯誤(原始錯誤是:「嘗試獲取鎖定;嘗試重新啓動事務「)。所以,我打算在我的javascript或c#文件(編程語言文件)上做一個while循環,並將每封電子郵件發送到存儲過程。 在上面的場景中,mysql連接的數量會增加,最大連接錯誤可能會發生。嘗試鎖定時發現死鎖;嘗試重新啓動交易
所以,我想問一下,用mysql做這種工作的最好方法是什麼?
感謝@kworr,但它執行得非常慢,並且它爲死鎖拋出錯誤。 –
實際上準備好的語句比常規語句快得多,因爲您不需要每次都解析SQL。它可以更快,然後分裂整個字符串在MySQL中。 – kworr
我已經發布了另一篇文章(http://stackoverflow.com/questions/19091968/deadlock-found-when-trying-to-get-lock-try-restarting-transaction-2nd-try)供您參考。請指導我。謝謝 –