안녕하세요. 장석문 입니다.
두테이블모두 Primary Key 가 ID이므로 unique index가 생성될것입니다.
id가 숫자 타입이면 index를 를 사용할수 있을것입니다.
만약 문자 타입이라면 index를 사용하지 못하고 테이블 Full Scan을 하겠죠.
만약 Full Scan을 한다면 속도는 모두 비슷할것입니다. 물론 데이터 상황에 따라서 2, 4가 조금 빠를수 는 있겠지요.
만약 인덱스를 사용한다면 3,4 가 1,2 보다 빠릅니다.
3,4의 경우는 리턴하고자 하는값이 인덱스에 모두 있으므로 인덱스를 한번만 읽으면 되지만 1,2의 경우는 인덱스를 사용하고, 테이블을 읽어야 하기때문에 1,2보다는 조금 느릴수 있읍니다. (여기서 조금이란 말은 인간이 감지하지 못할정도를 의미합니다)
즐거운 하루되세요.
-- 궁금남 님이 쓰신 글:
>> select문을 이용한 검색시 검색 속도에 대한 궁금증입니다.
>>
>> 두개의 Table A,B가 있다고 할때.
>> Table A에는 (id,a,b,c,d,e,f,g,h,i,j) 10개의 field로 구성되어 있고 id는 primary key입니다.
>> Table B에는 (id,a,b,c,d) 5개의 field로 구성되어 있고 id는 primary key입니다.
>>
>> 만일 A,B Table에 저장된 데이터 양은 똑같다고 할때.
>> select * from A where id=1 - (1)
>> select * from B where id=1 - (2)
>> select id from A where id=1 - (3)
>> select id from B where id=1 - (4)
>>
>> 위의 네가지 경우중 어떤 경우 검색속도가 가장 빠른가요?
>>
>> 그리고 검색조건이 int형 이라고 하더라도 field에 저장된 data type이 어떤 종류냐에 따라서도 검색속도에 영향이 있나요?
>>
>> 그리고 마지막으로 질문하다 더 하면 ^.^
>> SQL구문의 실행 원리나 Database 설계와 관련된 자료나 site를 알려주시면 감사하겠습니다.
>> 오늘도 좋은 하루 되세요 ~~~~~^.^:
|