제목 | sql select 쪼~~~금 더 빠르게 만드는 팁 | ||
---|---|---|---|
글쓴이 | kaido | 작성시각 | 2016/04/21 14:54:53 |
|
|||
오늘 우연찮게 검색 도중에 찾게 된 팁입니다.
단순 select 문을 조~~~금 더 빠르게 만드는 비기입니다.
가령 테이블에 1만건 정도 밖에 안들어 있다고 치죠. SELECT * FROM tb_member WHERE id <= 1000000 LIMIT 1000000 SELECT * FROM tb_member LIMIT 1000000
이것의 차이는?
동일하게 데이터를 1만건 가져올 겁니다. [리미트 이하의 데이터를 가지고 있으니] 실제 쿼리속도 차이도 그리 안나요. [1만건 정도야 뭐..] 그나마 전자가 쪼오오끔 더 빠르긴 합니다.
그런데 explain 을 태워 보면 생각과 다릅니다. id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE tb_member range PRIMARY PRIMARY 8 \N 6693 Using where
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE tb_member ALL \N \N \N \N 13387
차이가 느껴지시나요? where 절이 무의미한 조건이라고 해도 끼는 순간 인덱스를 타워 버립니다. limit 만 넣으면 인덱스를 태우지 않습니다.
요약하면 이건 검색 조건의 타입 차이군요.
이상 500원도 아까운 간단 팁이었습니다.
|
|||
다음글 | [수정] POST 값 전체를 간단히 검증을 하고 vie... (4) | ||
이전글 | 특정경로에서 csrf 끄기.. (5) | ||
육사시미
/
2016/04/21 16:18:25 /
추천
0
|
배강민
/
2016/04/22 07:40:59 /
추천
0
알면서도 보통 부하가 터져야 튜닝하는 부분인데, 잘 짚어주셨네용
|
꽈찌쭈
/
2016/07/04 11:29:42 /
추천
0
저같은 경우는 SELECT * FROM tb_member WHERE id > 0 이런식으로 많이 사용합니다 |
kaido
/
2016/07/04 11:36:53 /
추천
0
@꽈찌쭈 네 맞아요. 조건은 뭐가 붙든 상관없습니다. 그냥 무의미한 조건절이 하나 붙으면 됩니다. 그리고 조건절이 하나 기본으로 붙어있으면 조건에 따른 AND 절을 붙이기 쉬워지죠. |
간단하지만 좋은 팁이네요.