2011-01-03 6 views
11

MySQL 테이블에서 열을 선택할 때 열을 선택할 수있는 순서에 따라 성능이 영향을 받습니까? (열을 포함 할 수있는 인덱스는 고려하지 않음)?쿼리의 열 순서가 중요합니까?

예를 들어 uid, name, bday가있는 테이블이 있고 다음과 같은 쿼리가 있습니다.

SELECT uid, name, bday FROM table 

MySQL은 다음 쿼리를 다르게 볼 수 있으며 따라서 어떤 종류의 성능 저하가 발생합니까?

SELECT uid, bday, name FROM table 

답변

7

실제로 순서는 중요하지 않으므로 원하는대로 주문할 수 있습니다.

편집 : 더 많은 배경 지식이 도움이 될 것 같습니다. 내가 아는 한, 행 데이터의 하위 집합을 가져 오기 전에 정확하게 쿼리를 최적화하는 프로세스가 발생합니다. 따라서 쿼리 최적화 프로그램은 먼저 어떤 테이블을보고, 수행 할 조인, 사용할 인덱스, 적용 할 집계 등으로 분해 한 다음 해당 데이터 집합을 검색합니다. 열 순서는 데이터 가져 오기와 결과 집합의 형성 사이에서 일어나므로 데이터는 데이터베이스에 의해 실제로 "도착"되고 그 다음에 응용 프로그램에 반환 될 때 재정렬됩니다.

2

실제로, 그럴 수도 있습니다.

알맞은 쿼리 최적화 프로그램을 사용하면 안됩니다.

측정을 통해서만 사례를 알릴 수 있습니다. 측정 값은 데이터베이스의 데이터 분포가 변경 될 때마다 변경 될 수 있습니다. 관련

Wazzy

0

선택한 속성의 순서

은 무시할 수있다. 기본 저장소 엔진은 반드시 특성 위치를 정렬하지만 반드시 특정 순서 (이름 바꾸기, 테이블 변경, 행 대 열 저장)를 알 수있는 방법이 없을 수도 있습니다. 대부분의 경우 테이블 설명과는 독립적 인 메타 데이터 어쨌든. 결과 집합에 표시되는 순서는 측정 가능한 오버 헤드 측면에서 중요하지 않습니다.

관련 문제