我想问一下:
UPDATE a.alist a ,a.bstatus b
SET a.tstatus=b.TStatus,
a.UpdateDate=NOW()
WHERE a.fid=b.fid
AND a.type=b.type
AND a.type IN(1,9)
AND b.DStatus>0
AND a.tstatus=-1
AND b.IsValid=1
AND a.IsValid=1;
在alist bstatus 上fid 建立了索引,alist 数据量比较大, 请这种情况下怎么锁表??如果换成:UPDATE a.alist a ,a.bstatus b
SET a.tstatus=b.TStatus,
a.UpdateDate=NOW()
WHERE a.fid=b.fid
AND a.type=b.type
AND b.DStatus>0
AND a.fid in(
select fid from a.alist where type IN(1,9) and a.DStatus=-1)
AND a.tstatus=-1
AND b.IsValid=1
AND a.IsValid=1;这样锁表和上面是不是一样的????
UPDATE a.alist a ,a.bstatus b
SET a.tstatus=b.TStatus,
a.UpdateDate=NOW()
WHERE a.fid=b.fid
AND a.type=b.type
AND a.type IN(1,9)
AND b.DStatus>0
AND a.tstatus=-1
AND b.IsValid=1
AND a.IsValid=1;
在alist bstatus 上fid 建立了索引,alist 数据量比较大, 请这种情况下怎么锁表??如果换成:UPDATE a.alist a ,a.bstatus b
SET a.tstatus=b.TStatus,
a.UpdateDate=NOW()
WHERE a.fid=b.fid
AND a.type=b.type
AND b.DStatus>0
AND a.fid in(
select fid from a.alist where type IN(1,9) and a.DStatus=-1)
AND a.tstatus=-1
AND b.IsValid=1
AND a.IsValid=1;这样锁表和上面是不是一样的????
UPDATE加的都是排他锁。