테이블에 ~ 2M 행이 있습니다. B-tree 프라이 머리 키 (id, round)와 2 개의 다른 (무관 한 것 같다) 인덱스가 있습니다.쿼리 최적화 삽입
내 질문은 다음과 같습니다
insert into a1
select * from cars
where (id, round) in (select id, min(round) from cars group by id)
위의 쿼리는 를 실행 ~ 30 대를 취할 것입니다 만 왜 다음 쿼리
insert into a1
select * from cars
where (id, round) in (select id, max(round) from cars group by id)
실행 영원히 걸릴 것 같다? 나는 몇 시간을 기다렸다. 내가 변화하는 유일한 것은 min-> 최대에게 있습니다
PS : 여기에 생성 테이블입니다
CREATE TABLE `cars` (
`id` int(11) NOT NULL,
`make` varchar(128) NOT NULL,
`miles` varchar(128) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`round` int(11) NOT NULL,
`location` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`,`round`),
KEY `time` (`time`),
KEY `make` (`make`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
서브 쿼리가'id'보다는'round'에 의해 그룹화되는 이유는 무엇입니까? 이 경우 id는 임의적이라는 것을 알고 있습니까? 맞습니까? –
'(id round) in (round로 자동차 그룹에서 min을 선택하십시오)'및 (id round)에서 (select id, max) 자동차에서 extended select *를 설명하십시오. (라운드)에서 자동차 그룹에서)' – penartur
미안 해요, 이드이어야합니다. –