【发布时间】:2013-09-30 08:01:01
【问题描述】:
我正在从我的网站向我的用户发送批量邀请。为此,我将包含电子邮件的逗号分隔字符串传递给我在 mysql 中的存储过程。在这个存储过程中,一个while循环解析每封电子邮件(使用以逗号分隔的substring())并检查现有数据库,然后如果它不存在则插入到表中,或者如果该电子邮件已经存在,则生成带有guid的电子邮件链接。该过程对于小批量(例如,低于 200-250 封电子邮件)运行良好,但如果批量较大(250 多封电子邮件),则整个过程卡住并且下一个请求会出现死锁错误(原始错误是:“尝试获得锁定;尝试重新启动事务”)。所以,我计划在我的 javascript 或 c# 文件(编程语言文件)上做一个 while 循环,并将每封电子邮件发送到存储过程。 在上述情况下,mysql连接数会增加,可能会出现最大连接错误。
那么,我想问一下,用mysql做这种工作的最好方法是什么?
【问题讨论】:
标签: mysql database stored-procedures amazon-rds database-deadlocks