重写此查询的最佳方法是什么:
SELECT myField
FROM myPrefix.myTable
WHERE myField2 IN (?) AND
GET_LOCK(CONCAT('action:',myField3), 0) = 1
LIMIT 1
myField2
上面有索引。
现在,MySQLIN
首先评估操作(因为它知道上面有一个索引),然后对GET_LOCK
操作进行管道化。
我怎么能确定这将永远是这种情况,并且不会在 MySQL 升级/等之间切换。
AKA,我的问题是,我怎样才能确保GET_LOCK
永远不会先被评估。我想将这一切都保留在一个查询中。