2011-01-15 5 views
1

가 같은 테이블에서 모든 필드를 선택하는 것이 더 빠릅니다인지 궁금 :MySQL의 - "선택"속도

SELECT * 

또는 당신이 정말로 필요 단지 사람을 선택합니다

SELECT field1, field2, field3, field4, field5... 

테이블을 가정을 약 10 개의 필드가 있으며이 작업에는 5 또는 6 만 필요합니다.

+0

가능한 복제 [select *를 사용하지 않는 이유는 무엇입니까?] (http://stackoverflow.com/questions/321299/what-is-the-reason-not-to-use-select) –

답변

3

가능한 경우 정확한 필드를 선택하는 것이 더 빠릅니다. 당신의 직감은 정확합니다. 기계의 낭비 된 시간이 사실상 낭비되는 것으로 생각할 수있는 것은 무엇이든간에 문제의 크기는 항상 문제가 될 수 있습니다. 이 특정 예제는 (ORM을 통해) 생성 된 코드가 인기있는 이유 중 하나입니다! ORM을 사용하면 가장 기본적이고 반복적 인 최적화 작업은 ORM 자체에서 처리되며 사용자 지정 직접 작성 쿼리는 규칙이 아닌 예외입니다.

2

필드를 선택하면 속도에 큰 영향을 줄 수 있습니다. select *를 수행 할 때 일부 필드가 BLOB 또는 TEXT 일 경우 큰 부정적인 영향을 미칩니다. this documentation page을 확인하고 serach 'select * 사용을 피하십시오.'.

3

항상 정확한 필드를 선택해야합니다. 그렇지 않으면 테이블을 수정할 때 엄청난 성능에 직면 할 수 있습니다. 해당 테이블에 BLOB를 추가하기로 결정하면 어떻게되는지 생각해보십시오. 실수로 메가 바이트의 불필요한 데이터를 선택할 수 있습니다.

약간의 차이가 있습니다. 질의 캐시가 제한된 수의 질의만을 가지는 것이 더 나을 수도 있습니다. 때때로 필드 1, 2 및 3 만 필요할 때가 있고 다른 시간에는 4가 필요할 수도 있고 4가 작은 필드 일 수도 있습니다. 첫 번째에만 필요한 경우에도 항상 1, 2, 3 및 4를 선택하는 것이 좋습니다. *을 사용해야합니다.