SELECT t.compname, min(t2.version) FROM archdetails t
INNER JOIN svn3 b ON t.compname = b.compname
INNER JOIN archdetails t2 ON t.compname = t2.compname
WHERE ((b.revno = '270294' OR b.revno = 'r275869' OR b.revno = 'r393316'))
AND t.version = '1.6'
GROUP BY t.compname`
Таблица archdetails
:
Field | Type | Null | Key | Default | Extra
-------------------------+--------------+------+-----+---------+-------
name | varchar(15) | NO | | NULL |
compname | varchar(500) | NO | MUL | NULL |
sno | int(11) | NO | | NULL |
count | int(11) | NO | | NULL |
fdindex | int(11) | NO | | NULL |
version | varchar(10) | NO | | NULL |
sdate | date | NO | | NULL |
edate | date | NO | | NULL |
inFlat | int(11) | NO | | NULL |
inStar | int(11) | NO | | NULL |
inNostar | int(11) | NO | | NULL |
inReducedStar | int(11) | NO | | NULL |
Таблица svn3
:
Field | Type | Null | Key | Default | Extra
---------+---------------+------+-----+---------+------
name | varchar(20) | NO | MUL | NULL |
revno | varchar(10) | NO | MUL | NULL |
comp | varchar(1000) | NO | MUL | NULL |
compname | varchar(1000) | NO | | NA |
У меня есть индекс 1
на compname version
в archdetails
и индексы 4
на svn3
на revno
; revno, comp, compname
; comp, compname
; и name, revno, comp, compname
.
Индексы на compname имеют длину 100.
Для выполнения запроса все еще требуется 0.16 sec
, что очень дорого для моей цели. У меня нет большого опыта работы с индексами, и вышеупомянутые индексы были созданы с использованием наиболее часто используемых переменных. Посоветуйте, пожалуйста, как работать с индексами.