UNION会导致MyIsam上的表锁吗?

时间:2015-08-31 11:40:10

标签: mysql locking union myisam

我在徘徊天气UNION会导致桌面锁?
数据库适用于MyIsam引擎。
我从同一个表中选择3个数据片段并使用UNION

连接它们
select *
from table1
where date between '2015-07-01' and current_date() and id in ( 2281,6691, 77854, 65847) and ctry = 'USA'

union

select *
from table1
where date between '2015-07-01' and current_date() and id in ( 2281, 1111, 86785,62257) and ctry = 'CA'

union

select *
from table1
where date between '2015-07-01' and current_date() and id= 1759

2 个答案:

答案 0 :(得分:1)

MYISAM跟随表级锁定并且innodb跟随行级锁定。所以,在你的情况下你加入3个表,MYISAM将锁定1个表然后为其他表...

答案 1 :(得分:0)

MyISAM将执行表级锁定 - 大概3次(每个联合1次)。

以下索引应该使查询运行得更快:

INDEX(ctry, id, date)
INDEX(id, date)