我有以下查询:
SELECT * WHERE accountId = 1 AND (phone = "1234" OR fax = "5678") FOR UPDATE
WHERE子句中的所有3列都有键。 accountId是索引,电话和传真与accountId结合使用以制作唯一索引:
UNIQUE KEY `phone` (`phone`,`accountId`),
UNIQUE KEY `phone` (`fax`,`accountId`),
KEY `aid` (`aid`),
哪些密钥会被锁定?我需要的是用phone =“1234”||来锁定行对于accountId = 1,传真=“5678”。是正确优化OR还是锁定所有行。
Mysql版本是5.0
答案 0 :(得分:0)
尝试
EXPLAIN SELECT * WHERE accountId = 1 AND (phone = "1234" OR fax = "5678") FOR UPDATE
获取有关MySQL如何执行此语句的信息。