0

我有以下查询:

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" || 锁定行 传真 = "5678" for accountId = 1。是否正确优化或所有行将被锁定。

mysql版本是5.0

4

1 回答 1

0

试一试

EXPLAIN SELECT * WHERE accountId = 1 AND (phone = "1234" OR fax = "5678") FOR UPDATE

为了获取有关 MySQL 如何执行此语句的信息。

于 2012-08-01T08:56:11.307 回答