엽토군님 결과 파일을 올려드립니다.
조회수 427회
쿼리1
쿼리 2
CREATE TABLE `Basic12MFW1D` (
`code` longtext,
`name` longtext,
`ChangeOP` double DEFAULT NULL,
`ChangeNP` double DEFAULT NULL,
`ChangeOPM` double DEFAULT NULL,
`ChangeROE` double DEFAULT NULL,
`ChangeSales` double DEFAULT NULL,
`year` int(11) DEFAULT NULL,
`month` int(11) DEFAULT NULL,
`day` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
입니다.
1 답변
-
일단 테이블에 인덱스가 전혀 없는 것은 확실해 보입니다. 그러니 당연히 느립니다. 왜냐하면 이는 말하자면 목차("index") 없는 책에서 원하는 문장을 찾는 것과 흡사한 상황이기 때문입니다.
사람들은 목차 없는 책을 뒤질 때 "아무리 그래도 여기에는 없다" 싶은 곳은 적당히 패스해 가면서 뒤집니다. 하지만 데이터베이스는 그런 거 없이 제 1페이지부터 열어서 읽고 넘기고 열어서 읽고 넘기면서 문장을 찾습니다. 그래서 느린 겁니다. 필요 없는
year
,month
,day
를 패스해 가면서 뒤지게 하려면year
,month
,day
에 관한 목차를 지정하고 정리하도록 하셔야 해요.사실 여기서부터는 저보다 DB를 더 잘 아시는 분들의 도움을 받으셔야 할 거 같습니다. 테이블에 락을 걸고, 지금이라도 적당히
CREATE INDEX ... ON Basic12MFW1D
명령을 써서 인덱스를 추가해야 하기 때문이지요. 그 인덱싱 전략은... 제가 DB를 잘 모르겠어서 부득이 패스합니다.
댓글 입력