programing

최소/최대와 주문 기준 및 제한

goodsources 2023. 2. 2. 21:14
반응형

최소/최대와 주문 기준 및 제한

다음 질문 중 어떤 방법이 더 낫다고 생각하십니까?어떤 이유(코드 효율성, 유지보수성 향상, WTFery 감소)...

SELECT MIN(`field`)
FROM `tbl`;

SELECT `field`
FROM `tbl`
ORDER BY `field`
LIMIT 1;

되지 않은 필드를 " "를 사용합니다.MIN()1번으로 하다「」를 사용합니다.SORT ★★★★★★★★★★★★★★★★★」LIMIT에는 파일 정렬이 필요합니다.큰 테이블과 비교해도 퍼포먼스에 큰 차이가 있을 수 있습니다.an화 as as as as as as as as as asMIN().걸린 반면 .36s가 .SORT ★★★★★★★★★★★★★★★★★」LIMIT개발 서버의 106,000 행 테이블에 대해 0.84초를 기록했습니다.

그러나 색인화된 열을 보고 있는 경우에는 차이를 알아차리기 어렵습니다(두 경우 모두 의미 없는 데이터 점이 0.00s).설명의 , 「이렇게 되어 있습니다」라고 하는 것 .MIN()값('away'및 'NULL' 추출할 수, 'Select tables optimized away'('Select tables optimized away')는 'NULL'입니다.SORT ★★★★★★★★★★★★★★★★★」LIMIT는 인덱스를 순서대로 트래버설할 필요가 있습니다(120,000 행).실제 퍼포먼스에 미치는 영향은 무시할 수 있습니다.

★★★★★★★★★★★★★★★★★★.MIN()이 방법은 최악의 경우 더 빠르고 최상의 경우 구별이 불가능하며 표준 SQL이며 원하는 가치를 가장 명확하게 표현합니다.「 」를 사용하는 이, 「 」의 사용했을 되는 유일한 입니다.SORT ★★★★★★★★★★★★★★★★★」LIMITmson이 언급한 바와 같이 임의의 컬럼에서 상위 또는 하위 N개의 값을 찾는 일반적인 연산을 작성하는 것이 바람직하며 특별한 경우 연산은 쓸 가치가 없습니다.

SELECT MIN(`field`)
FROM `tbl`;

단순히 ANSI 호환성이 있기 때문입니다.제한 1은 TOP가 SQL Server와 마찬가지로 MySql에만 적용됩니다.

mson과 Sean McSomething이 지적했듯이 MIN이 더 좋다.

ORDER BY + LIMIT이 유용한 다른 이유는 MIN 열과 다른 열의 값을 가져오려는 경우입니다.

예:

SELECT some_other_field, field
FROM tbl
ORDER BY field
LIMIT 1

나는 네가 무엇을 하느냐에 따라 답이 다르다고 생각해.

원오프 쿼리가 있고 그 의도가 지정한 대로 단순할 경우 min(field)을 선택하는 것이 좋습니다.

그러나 이러한 유형의 요건이 상위 n개 결과 획득, n번째 - m번째 결과 획득 등으로 변경되는 것이 일반적이다.

선택한 데이터베이스에 전념하는 것도 나쁘지 않은 생각인 것 같아요.dbs를 변경하는 것은 가볍게 해서는 안 되며, 수정할 필요가 있는 것은 당신이 이행을 할 때 지불하는 대가입니다.

왜 지금 스스로를 제한해야 하는가? 나중에 느낄 수도 있고 아닐 수도 있는 고통을 위해서?

가능한 한 ANSI를 유지하는 것이 좋다고 생각합니다만, 그것은 가이드라인에 지나지 않습니다.

적절한 퍼포먼스가 주어진다면 첫 번째 퍼포먼스는 의미적으로 의도에 가깝기 때문에 사용합니다.
퍼포먼스가 문제라면 (대부분의 최신 옵티마이저는 양쪽을 같은 쿼리 플랜에 프로발적으로 최적화하지만 검증은 테스트해야 합니다)물론 더 빠른 것을 사용합니다.

user650654는 "MIN 열과 다른 열의 값을 얻어야 할 때" LIMIT 1을 사용한 ORDER BY가 유용하다고 합니다.이 경우 정렬이 아닌 MIN을 사용하여 두 번의 단일 패스로도 성능이 더 우수하다고 생각합니다(이것이 최적화되기를 바랍니다).

SELECT some_other_field, field
FROM tbl
WHERE field=(SELECT MIN(field) FROM tbl)

언급URL : https://stackoverflow.com/questions/426731/min-max-vs-order-by-and-limit

반응형