database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 27080 게시물 읽기
No. 27080
ASC 정렬과 DESC 정렬의 속도 차이
작성자
브라운(brown)
작성일
2007-10-10 01:36
조회수
4,482

하나의 테이블에 대략 200만개의 데이터가 존재하는 상황에서

index가 설정되지 않은 컬럼으로 정렬을 하였습니다.

1. select id from TABLE order by thread desc limit 1000000, 10;

2. select id from TABLE order by thread asc limit 1000000, 10;

(id만 primary key로 설정되어 있습니다.)

그런데 일반적으로 ASC 정렬이 더 빠르다고 하지 않습니까?

그래서 당연히 시간이 차이가 날 것으로 생각하였습니다.

그런데 이상하게도 실행시간이 대충 8초면 시간이 0.1~0.3초 차이로 거의 비슷하다는 것입니다.

MySQL 버전이 5.0.x 입니다.


그런데 분명 버전 4에서는 시간차이가 났던걸로 기억하는데

도대체 왜 그런지 알 수가 없습니다.

고수님들의 고견을 듣고 싶습니다.




이 글에 대한 댓글이 총 2건 있습니다.

도움이 될지 모르겠습니다.


select 되는 ID는 검색 속도와는 완전히 무관합니다.


단지, thread 필드의 배치 문제가 속도에 민감하게 발생 합니다.


먼저, thread 필드가 인덱스화가 안 되어 있기에 ASC든, DESC 든 소팅을 무조건 하게 됩니다.


이때, 소팅을 할때, 저장되어 있는 thread 필드의 배치가 어떻게 되어 있느냐에 따라 속도의 차이가 있습니다.


ASC랑 DESC랑 속도가 비슷하다는 것은, thread 필드의 배치가 고르게 되어 있다는 것입니다.


예를 들어... 입력되어 있는 데이터가


thread

1

2

3

5

4

이럴 경우, ASC 소팅이 속도가 더 빠르게 나옵니다.


thread

4

5

3

2

1

일 경우는, DESC 소팅이 더 빠르겠죠...


하지면, 지금의 속도가 비슷 한 경우는

thread

4

2

1

3

5


이럴 경우, ASC든 DESC 든 소팅 속도가 비슷하게 나옵니다.



4버전과 5버전의 차이가 있다는 건, 소팅 엔진의 차이일 수도 있고, 데이터의 배치의 차이가 있을 수도 있습니다. 여러가지 요건에 따라 다른 경우 입니다. ^^


아무래도, 5버전의 엔진이 좀더 강화 되었을 껄로 판단 됩니다. ^^

이승훈(foxiii)님이 2007-10-18 10:54에 작성한 댓글입니다.

인덱스가 ASC냐 DESC냐에 따라 다르죠~~

윗분말씀처럼

4

2

1

3

5

일케 되어 있다면

재정렬해주면 되고요

김상익님이 2007-10-20 06:29에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
27085MySQL 데이터 양과 속도에 대해서 문의 드립니다. [3]
김대홍
2007-10-17
2465
27083ms-sql -> my-sql 로 어떻게 하나요 ㅜㅜ [1]
몰라몰라
2007-10-16
2345
27082date column을 between으로 가져올 때 속도개선 문제... [2]
안명규
2007-10-15
3381
27080ASC 정렬과 DESC 정렬의 속도 차이 [2]
브라운
2007-10-10
4482
27079이런경우에 DB 나 테이블 복구가능하나요? 부탁드립니다.. ㅠㅠ
박정환
2007-10-09
2405
27078같은 형태의 열을 출력할 때
아이구
2007-10-09
2090
27077mysqld ended
알려주셔요
2007-10-09
3396
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다