테이블 두개를 조인해서 그룹별 최신데이터 한개씩만 찍는 쿼리문을 만들었는데요..
from 절에서 서브쿼리로 조인하기전 정렬하고 조인해서 그룹별로 데이터를 조회합니다.. 근데 자료가 5만건밖에 없는데도 너무 느리게 조회가 되서요..
다른방법이 있는지 여쭙고싶습니다..
`num1` int(11) NOT NULL auto_increment,
`local_code` varchar(11) character set utf8 NOT NULL,
`area_code` varchar(40) character set utf8 NOT NULL,
`equip_state` varchar(11) character set utf8 default '2',
`error` int(11) default '0',
`repair` int(11) default '0',
`demander` varchar(40) character set utf8 default NULL,
`demander_number` varchar(40) character set utf8 default NULL,
`repair_charge` varchar(40) character set utf8 default NULL,
`equipment_error` int(11) default NULL,
`modify_request` text character set utf8,
`modify_request_progressing` text character set utf8,
`modify_request_complete` text character set utf8,
`modify_other` text character set utf8,
`repair_date` date default NULL,
`repair_date_complete` date default NULL,
`FILE` varchar(510) character set utf8 default NULL,
`filename` varchar(510) character set utf8 default NULL,
`FILE2` varchar(510) character set utf8 default NULL,
`filename2` varchar(510) character set utf8 default NULL,
`reg_date` datetime default NULL,
PRIMARY KEY (`num1`,`local_code`,`area_code`),
KEY `repair_index` (`area_code`,`local_code`)
) ENGINE=InnoDB AUTO_INCREMENT=154847 DEFAULT CHARSET=euckr
select a.area_code,a.local_code,a.rtu_name,a.senser,repair_as.area_code,repair_as.local_code,repair_as.reg_date,equipment_error,equip_state,num1,repair_charge
from circumstances as a ,
(select num1,area_code,local_code,equip_state,repair,equipment_error,repair_charge,reg_date from repair where (equip_state = '1' or equip_state = '2' or equip_state = '3') order by num1 ,area_code desc) as repair_as
where a.area_code= repair_as.area_code and a.local_code=repair_as.local_code and flog='0' and repair_as.equipment_error <> '10' group by a.area_code ;
circumstances 과 repair 라는 테이블을 조인하는 sql입니다..원하는 데이터는 얻었지만 검색이 너무 느립니다..좀더 빠르게 바꿀수 있을까요?
|