Mysql 左连接速度很慢

标签 mysql sql

我有一个左连接:

$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 上建立一个索引,并在文档标题栏上建立全文索引。 IN 和 LIKE 对我来说是直接的标志。发布日期也应该有一个索引,因为您 >= 它

关于Mysql 左连接速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21914146/

相关文章:

php - mysql查询以查找连接表中的重叠

mysql - 如何通过mysql游标中的索引访问一行?

mysql - Flask SQL-Alchemy 查询为我的数据库中存在的数据返回空值。可能是什么原因

sql - 如何向sql表添加约束,使表只有一行

python - 在 SQL/Python 中使用动态日期值旋转 Snowflake 查询

mysql - 如何在 grafana 查询中使用累积求和变量?

mysql - 每 1 小时自动通过 SSH 隧道对远程 mysql 服务器运行一次 select 语句

mysql - 邻接列表模型或嵌套集模型,我应该使用哪种数据模型来存储分层数据?

sql - 根据条件增加一个值

sql - 连接到 SQL 数据库时出现 VBA 运行时错误