> SELECT [column] FROM [table] ORDER BY [column] DESC LIMIT 1;
> SELECT MAX( [column] ) FROM [table];
둘의 결과는 같으나 쿼리 최적화에 대한 고민은 해봤을듯 하다.
테스트에선 차이가 보이지 않으나 대용량에서 사용시 조회 차이가 눈에 보일 정도의 딜레이가 될수 있기에.
ORDER BY 자체는 상당히 부담이 큰 조건으로 왠만하면 사용을 자제한다.
조회할 테이블을 전체 정렬을 하는 상황이 되어 부담 스러운 일이 되지만,
LIMIT 1이 있어 풀 조회 전에 차단이 되 덜 부담 스러운 상황이 되는 꼼수라고 할까.
MAX()는 자체 지원하는 함수.
검증된 기능이라는 이야기.
이러면 뭘 쓸까 고민이 되는데 DESC 구조 조회를 해 보면.
> DESC SELECT MAX( [column] ) FROM [table];
Extra 에 Select tables optimized away 라고 최적화된 기능이라고 나온다.
MAX 값을 출력하는 것이라면 ORDER BY [column] DESC LIMIT 1 보다 MAX()를 활용하자.
'[ Programing ] > Database' 카테고리의 다른 글
[MySQL] Json - SELECT, INSERT, UPDATE, CREATE (0) | 2023.11.16 |
---|---|
[MySQL] DESC / ALTER / DROP / VIEW / INSERT / UPDATE / DELETE / DROP / IN / BETWEEN / AS (0) | 2023.05.23 |
[MySQL] Index 키 설정시 DESC 는 8.0 부터. (0) | 2023.05.23 |
[MySQL] INSERT, UPDATE 동시 하는 쿼리. (0) | 2023.05.22 |
[MySQL] Procedure 예외처리, 경고 처리. (0) | 2023.05.09 |