我有一个Web服务(确切地说是xmlrpc服务),它可以处理将数据写入数据库的其他事项.这是场景:
我经常收到更新或插入记录的请求.我会做的是:
问题在于,某些时候我会收到"爆发"的请求,这会产生几个apache线程来处理请求.这些"爆发"将在不到几毫秒的时间内完成.我现在有几个线程执行#1和#2.通常两个线程将"传递"数字#1并实际创建两个重复记录(主键除外).
我想使用一些锁定机制来防止其他线程在另一个线程完成其工作时访问该表.我只是害怕使用它,因为如果发生了什么事,我不想让桌子锁定.
有一个坚实的方法来处理这个?如果我能正确使用,我愿意使用锁.
谢谢,
添加唯一索引或主索引并使用:
INSERT INTO table (..) VALUES (...) ON DUPLICATE KEY UPDATE .....
Run Code Online (Sandbox Code Playgroud)