我想优化这个查询尽可能好,但我仍然得到查询锁由于此查询。可以提供一些建议,在改善它。查询提取最后一天从桌子上的条目。多个左连接查询导致查询锁
查询:
SELECT CR.id,
CR.servicecode,
CR.leadtime,
CR.redirecturl,
CRE.custemail,
CRE.custlname,
CRE.custfname,
CRE.duration,
CR.userid,
AA.lpintrotimearr,
AA.lpintrotimedep,
AA.landdatetimearr,
AA.landdatetimedep,
CR.newcustid,
cre.CRE.custmobilephone,
CRE.brandname
FROM response CR
LEFT JOIN agreement AA
ON CR.id = AA.id
LEFT JOIN request CRE
ON CRE.id = CR.id
WHERE CR.id > '20120617145243'
AND CR.approved = 1
AND CR.chlapproved != 0
AND CR.chlapproved IS NOT NULL
AND AA.id IS NOT NULL
AND (AA.stdsign != 'on'
OR AA.stdsign IS NULL)
AND (AA.ivaflag = 0
OR AA.ivaflag IS NULL)
AND (AA.opt IS NULL
OR AA.opt = 0);
的说明:
的一种方式是索引的所有3(AA.stdsign,AA.ivaflag和AA.opts)列,但所有的三个标志(AA.stdsign,AA.ivaflag和AA.opts)只能有3个不同的值。这些标志索引会减少查询运行时间吗?
所有的ids都是varchar(60)数据类型。
如果您使用“show creeate table X”为我们提供表格定义,将会有所帮助。 –
你是什么意思'但我仍然得到查询锁由于这个查询' – Kshitij
每当这个查询被执行,它需要很多时间和进程状态显示“发送数据” –