当使用select ... for update ...where ...时,mysql进行row lock还是table lock只取决于是否能使用索引(例如主键,unique字段),能则为行锁,否则为表锁;未查到数据则无锁。而 使用'<>','like'等操作时,索引会失效,自然进行的是table lock(索引的使用可以参考https://blog.csdn.net/u010689849/article/details/82109585)。
所以慎用for update。
当使用select ... for update ...where ...时,mysql进行row lock还是table lock只取决于是否能使用索引(例如主键,unique字段),能则为行锁,否则为表锁;未查到数据则无锁。而 使用'<>','like'等操作时,索引会失效,自然进行的是table lock(索引的使用可以参考https://blog.csdn.net/u010689849/article/details/82109585)。
所以慎用for update。