0
我有以下查詢:MySQL的行鎖與OR
SELECT * WHERE accountId = 1 AND (phone = "1234" OR fax = "5678") FOR UPDATE
有在所有3列鍵的WHERE子句。 accountId是索引,電話和傳真與accountId相結合,以製作唯一索引:
UNIQUE KEY `phone` (`phone`,`accountId`),
UNIQUE KEY `phone` (`fax`,`accountId`),
KEY `aid` (`aid`),
哪些鍵將被鎖定?我需要的是用phone =「1234」||鎖定行對於accountId = 1,傳真=「5678」。OR正確優化或所有行都將被鎖定。
MySQL的版本是5.0
可能的密鑰accountId,電話。使用的密鑰是accountId。這是否意味着accountId = 1的所有行都會被鎖定,並且有辦法解決這個問題。也許分裂成2個查詢? – NickSoft 2012-08-01 10:06:33