쿼리플랜이란 DB에서 쿼리를 날릴 때, 어떤 식으로 검색할 지 보여주는 것이다.
그 플랜대로 옵티마이저가 돈다.
옵티마이저 : sql 문장을 수행하기 위하여 가장 효과적인 방법을 선택하는 처리 과정.
select * from user where id = 20;
select * from user where name like '%은정%';
컬럼에 index가 제대로 걸렸는지 확인할 수 있다.
(걸려있다면 1, 안걸려있으면 2다)
74만개정도 데이터가 있는 테이블에서는 검색속도가 10초가량 차이가 났다.
(key로 검색하는 게 0.002초, 다른 컬럼으로 검색하는 건 10초정도 걸렸다.)
복잡한 서브쿼리를 사용할 때, 한번 씩 확인하는 습관을 가지면 좋다.
검색api 응답이 오래걸리는 경우, 쿼리부분에서 제대로 key 검색을 하는지 확인해보자.
자잘한팁) join걸때도 데이터양이 적은 테이블부터 시작하면 속도를 줄일 수 있다.
위 화면은 mysqlWorkbench에서 확인할 수 있다. 아래 5번째에 있는 돋보기 버튼을 누르면 된다.
심화내용 : 벨로그/쿼리플랜
글 쓴후에 읽어봤는데 더 자세하고 전문적이다.