MySQL_Section/developer
-
[MySQL] IF문 사용예제MySQL_Section/developer 2014. 11. 18. 14:35
[MySQL] IF문 사용예제 ※ 경고 높이뜬새의 모르는 사람이 없는 팁시리즈 입니다. 이 팁시리즈는 지면낭비라는 항의시에 즉각 중단됩니다. MySQL에서는 IF문 자체를 프로시져 도움없이도 SQL문에 바로 삽입하는 것이 가능해서 무척 편리합니다. 물론 제어부분이 계속 중첩된다면 CASE문을 사용하셔야 합니다. 형식) if (조건,참일때 결과,거짓일때 결과) 예1) 쉬운 예 mysql> SELECT if( 2 > 1, '참', '거짓' ); 결과 : 2가 1보다 크므로 당연히 참을 출력합니다. 예2) WHERE절에서 사용 SELECT * FROM join_table WHERE if( CHAR_LENGTH(name) = 2, 'Y', 'N' ) = 'Y'; 결과 : join_table의 name컬럼에서 이..
-
MySQL에서 커버링 인덱스로 쿼리 성능을 높여보자!!MySQL_Section/developer 2014. 11. 13. 16:27
안녕하세요. 오늘 짧지만 재미있는 내용을 하나 공유할까 합니다. 커버링 인덱스(Covering Index)라는 내용인데, 대용량 데이터 처리 시 적절하게 커버링 인덱스를 활용하여 쿼리를 작성하면 성능을 상당 부분 높일 수 있습니다. 커버링 인덱스란? 커버링 인덱스란 원하는 데이터를 인덱스에서만 추출할 수 있는 인덱스를 의미합니다. B-Tree 스캔만으로 원하는 데이터를 가져올 수 있으며, 칼럼을 읽기 위해 굳이 데이터 블록을 보지 않아도 됩니다. 인덱스는 행 전체 크기보다 훨씬 작으며, 인덱스 값에 따라 정렬이 되기 때문에 Sequential Read 접근할 수 있기 때문에, 커버링 인덱스를 사용하면 결과적으로 쿼리 성능을 비약적으로 올릴 수 있습니다. 백문이 불여일견! 아래 테스트를 보시죠. 테이블 생..
-
[실무] 프리페어리드 스테이트먼트MySQL_Section/developer 2014. 11. 13. 16:01
위메프 실무 프리페어리드 스테이트먼트 EXPLAIN EXTENDED SELECT @reply_time:=reply_time FROM cs_partner FORCE INDEX(IDX_MID_DEALID) WHERE deal_id = 128335 AND order_id = 35656659 SELECT @reply_time FROM cs_partner WHERE deal_id= 128335 AND @reply_time = 1 SHOW INDEX FROM cs_partner SELECT COUNT(*) FROM cs_partner SET @var_user_id = 'Fantine'; SET @var_user_name = 'Anne'; SET @var_query = CONCAT('explain extended S..