以下查询需要4秒才能运行,我不知道为什么因为索引结果很低.它的工作方式无法更改(因为它是从2个不同系统获取appName的兼容性查询)
你有什么想法?
SELECT runList.appName
FROM projectList
INNER JOIN varMeta ON (projectList.id = varMeta.projectId)
INNER JOIN runList ON (projectList.projectName = runList.appName)
WHERE varMeta.htmlvar_content = "example-app-name"
ORDER BY runList.id DESC
LIMIT 1;
+----+-------------+-------------+-------+--------------------+-------------+---------+---------------------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------------+-------+--------------------+-------------+---------+---------------------------+------+-------------+
| 1 | SIMPLE | runList | index | env,appName,all | PRIMARY | 8 | NULL | 3 | Using where |
| 1 | SIMPLE | projectList | ref | PRIMARY,appNameIDX | appNameIDX | 138 | compat.runList.appName | 1 | Using where |
| 1 | SIMPLE | varMeta | ref | varMetaIDX | varMetaIDX | 5 | compat.projectList.id | 63 | Using where |
+----+-------------+-------------+-------+--------------------+-------------+---------+---------------------------+------+-------------+
这是该查询的配置文件:
+--------------------+----------+
| Status | Duration |
+--------------------+----------+
| starting | 0.000215 |
| Opening tables | 0.000043 |
| System lock | 0.000034 |
| Table lock | 0.000015 |
| init | 0.000081 |
| optimizing | 0.000029 |
| statistics | 0.000345 |
| preparing | 0.000033 |
| executing | 0.000009 |
| Sorting result | 0.000009 |
| Sending data | 3.023702 |
| end | 0.000018 |
| query end | 0.000004 |
| freeing items | 0.000223 |
| logging slow query | 0.000004 |
| cleaning up | 0.000005 |
+--------------------+----------+