목록전체 글 (97)
썩구노트
Overview안정적인 서비스 유지를 위해서는 쿼리 작성이 상당히 중요합니다. 잘못된 쿼리 하나가 전체적인 퍼포먼스를 크게 저해하기도 하고 최악의 경우 장애 상황까지 치닫기 때문이죠단일 코어에서 Nested Loop Join으로 데이터를 처리하는 MySQL 특성 상 쿼리 구문에 큰 영향을 받습니다. (반드시 알아야할 MySQL 특징 세 가지 참고)그래서 오늘은 쿼리 작성 시 기피해야 하는 사항 세 가지정도 골라봅니다.Case 1SELECT @RNUM:=@RNUM+1 AS RNUM, ROW.* FROM (SELECT @RNUM:=0) R, ( SELECT M.MASTER_NO, M.TITLE, MI.PATH, M.REGDATE, CM.TYPE FROM MAIN AS M LEFT OUTER JOIN TAB0..
MySql에서 Oracle에서 처럼 ROWNUM을 구하기 위한 방법을 찾다가 세션변수를 이용한 방법을 찾게 되었습니다. @rownum 을 사용하는 방법인데, 어떻게 활용하는지 알아보겠습니다. ▶ 사용법 1 SET 구문을 사용하여 초기화 ▶ 사용법 2 FROM절에서 초기화 ▶ 사용법 3 WHERE절에서 초기화 ▶ 사용예제 ▶ 초기화 구문이 없을 경우 ▶ JOIN문이 포함된 경우 SELECT 구문에 ROW번호를 구하기 위한 수식을 추가합니다. @rownum:=@rownum+1 ▶ 사용법 1 SET 구문을 사용하여 초기화 SET 구문을 사용하여 조회하기 전에 rownum을 초기화 하고, 데이터를 조회합니다. SET @rownum:=0; SELECT @rownum:=@rownum+1 FROM 테이블명; ▶ 사용..
출처 - http://cjbox.tistory.com/39where절에 if문처럼 and조건 사용하기where절 AND (((30 = A.QRY_RNG ) AND (A.REQ_DEPT LIKE '%'||''||'%')) OR ((10 = A.QRY_RNG ) and (A.RE...cjbox.tistory.com where절AND (((30 = A.QRY_RNG ) AND (A.REQ_DEPT LIKE '%'||''||'%')) OR ((10 = A.QRY_RNG ) and (A.REQ_DEPT LIKE '%'||?||'%'))) 위 구문을 풀이해보면 if (30 == A.QRY_RNG) { A.REQ_DEPT_LIKE '%'||''||'%'}else if ( 10 == A.QRY_RNG) { A.REQ_..