【发布时间】:2021-11-17 03:05:12
【问题描述】:
如何提高此查询的速度?目前只需要几秒钟就可以加载查询所在的 php 文件,甚至不需要查询任何内容。
我有一个关于技能趋势、职位和行业的索引。 排序规则:utf8mb4_unicode_ci
$sql = "SELECT
COUNT(skillsTrends),
skillsTrends,
jobtitle,
industry,
industry_url
FROM fr_skills_trends
WHERE industry IN ('". implode("', '", $industryInsertSql). "')
AND LENGTH(skillsTrends)<=35
AND reg_date >= NOW() - INTERVAL 3 MONTH
GROUP BY skillsTrends ORDER by LENGTH(skillsTrends) DESC";
记录数
【问题讨论】:
-
我收到一个错误
ERROR 1140 (42000)。这是因为“MySQL 5.7.5及更高版本实现了功能依赖检测。如果启用ONLY_FULL_GROUP_BY SQL模式(默认情况下),” -
"我有一个关于 ....jobtitle 的索引" 你真的认为这有帮助吗?
reg_date >= NOW() - INTERVAL 3 MONTH呢?这不需要reg_date上的索引吗?还有LENGTH(skillsTrends)<=35?...... BTW:$industryInsertSql的内容怎么样? -
顺便说一句:有人写了一个关于这个主题的章节,请参阅:8.2.1 Optimizing SELECT Statements
-
感谢您的回复。 $industryInsertSql 是一个类别,例如来自选择选项菜单的会计。在该类别下可能有几千条记录。
标签: php mysql sql count query-optimization