我有一个左联接:

$query = "SELECT a.`id`, a.`documenttitle`, a.`committee`, a.`issuedate`, b.`tagname`
   FROM `#__document_management_documents` AS a
   LEFT JOIN `#__document_managment_tags` AS b
   ON a.id = b.documentid
   ".$tagexplode."
   ".$issueDateText."
   AND a.committee in (".$committeeQueryTextExplode.")
   AND a.documenttitle LIKE '".$documentNameFilter."%'
   GROUP BY a.id ORDER BY a.documenttitle ASC

  ";

在4000条记录上大约7秒真的很慢
任何想法我可能做错了
SELECT a.`id`, a.`documenttitle`, a.`committee`, a.`issuedate`, b.`tagname`
FROM `w4c_document_management_documents` AS a
LEFT JOIN `document_managment_tags` AS b
ON a.id = b.documentid WHERE a.issuedate >= ''
AND a.committee in ('1','8','9','10','11','12','13','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47')
AND a.documenttitle LIKE '%' GROUP BY a.id ORDER BY a.documenttitle ASC

最佳答案

我将在a.committee上添加一个索引,并在doctitle col上添加全文本索引。 IN和LIKE是我的直接标志。发行日期还应该有一个索引,因为您> =它

关于mysql - mysql离开联接很慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21914146/

10-09 06:23