riberio

마리아DB 서브 쿼리에 있는 정렬 사용하기 본문

개발 관련/MySql&MariaDB

마리아DB 서브 쿼리에 있는 정렬 사용하기

riberio 2017. 4. 12. 14:40


테스트 쿼리


SELECT * FROM (

 SELECT VM.*

FROM V_MEMBER VM

ORDER BY VM.NO DESC

 ) A

-- LIMIT 0, 10

 ;


위 서브쿼리의 정렬이 정상적으로 되지 않을 경우 


시스템 변수를 사용하면 적용이 되더라 ;;




SELECT * FROM (

 SELECT VM.*

FROM V_MEMBER VM

                , (SELECT @ROWNUM := 0) TMP

ORDER BY VM.NO DESC

 ) A

-- LIMIT 0, 10

    ;



실행 계획을 보면 

id select_type table type possible_keys key key_len ref rows Extra

1 PRIMARY <derived2> ALL 22

2 DERIVED <derived3> system 1         Using temporary; Using filesort

2 DERIVED m ALL PRIMARY 22

2 DERIVED u eq_ref PRIMARY PRIMARY 4 m.USERNO 1

2 DERIVED ut eq_ref PRIMARY PRIMARY 4 m.USERNO 1

3 DERIVED                          No tables used


해당 부분 때문에 먼저 정렬이 일어 나는듯 하는데 왜 그러는지 전부 이해는 하지 못했음.


누가 설명좀 해주세요.

Comments