나는 테이블 ~ 20,000,000 항목이날짜에 가장 가까운 데이터를 찾고 계십니까?
CREATE TABLE `symbol_details` (
`symbol_header_id` int(11) DEFAULT NULL,
`DATE` datetime DEFAULT NULL,
`ADJ_NAV` double DEFAULT NULL
)
있습니다. 지금은 하나의 symbol_header_id을 위해 가장 가까운 분기 말에 ADJ_NAV 값을 찾으려면 : 나는 내부 "날짜 선택"을 실행하면
SET @quarterend = '2009-3-31';
SELECT symbol_header_id AS she, ADJ_NAV AS aend FROM symbol_details
WHERE
symbol_header_id = 18546
AND DATE= (
# date closest after quarter end
SELECT DATE FROM symbol_details
WHERE ABS(DATEDIFF(DATE, @quarterend)) < 10
AND DATE<[email protected]
AND symbol_header_id = 18546
ORDER BY ABS(DATEDIFF(DATE, @quarterend)) ASC LIMIT 1)
신속 반환 쿼리합니다. 하위 쿼리 대신 올바른 날짜로 채워진 외부 쿼리를 실행하면 매우 빨리 완료됩니다. 그러나 내가 영원히하는 모든 일을 실행할 때 - 뭔가 잘못 됐습니까?
당신이 날뿐만 아니라 symbol_header_id에 인덱스를 가지고 있습니까? – Donnie
나는 그렇다. 날짜 및 기호 _ 머리글 _id 및 날짜 _ 기호 _ 머리글 _id에 하나. 쿼리가 평가되는 방식이 변경 되었습니까? –