본문 바로가기

mysql

(3)
MYSQL Explain Explain 정보보는법 인덱스가 적절히 사용되고 있는지 검토 나열된 순서는 MYSQL 이 쿼리처리에 사용하는 순서대로 출력 EXPLAIN 의 각 행 설명 1. id : SELECT 번호, 쿼리내의 SELECT 의 구분번호 2. select_type: SELECT 의 타입 1) SIMPLE: 단순 SELECT (UNION 이나 서브쿼리를 사용하지 않음) 2) PRIMARY: 가장 외곽의 SELECT 3) UNION: UNION 에서의 두번째 혹은 나중에 따라오는 SELECT 4) DEPENDENT UNION: UNION 에서의 두번째 혹은 나중에 따라오는 SELECT, 외곽쿼리에 의존적 5) UNION RESULT: UNION 의 결과물 6) SUBQUERY: 서브쿼리의 첫번째 SELECT 7) DEPE..
int(4) 와 tinyint(4), smallint(4)의 차이점은? TINYINT(M) [ 옵션 UNSIGNED , ZEROFILL ] ★★ : 정수형으로 총 1Byte 저장공간을 차지하는 데이터 타입으로 -128에서 127 사이의 숫자를 저장하기 위한 데이터 타입이다. UNSIGNED 옵션을 적용하면 0에서 255까지의 숫자를 저장한다. SMALLINT(M) [ 옵션 UNSIGNED , ZEROFILL ] : 정수형으로 총 2Byte 저장공간을 차지하는 데이터 타입으로 -32768에서 32767 사이의 숫자를 저장하기 위한 데이터 타입이다. UNSIGNED 옵션을 적용하면 0에서 65535까지의 숫자를 저장한다. MEDIUMINT(M) [ 옵션 UNSIGNED , ZEROFILL ] : 정수형으로 총 3Byte 저장공간을 차지하는 데이터 타입으로 -8388608에서 8..
mysql - ON DUPLICATE KEY UPDATE 와 index의 상관관계 indexs걸 때 key가 되는 columns이 DUPLICATE KEY UPDATE 쿼리의 key와 일치해야 합니다. 그렇지 않으면 DUPLICATE KEY UPDATE가 되지 않고 INSERT가 되네요. 예를 들면 INSERT INTO A_TABLE (id, name, updttm) VALUES (1, 'nakaikana', date_format(now(),'%Y%m%d%H%i%s')) ON DUPLICATE KEY UPDATE updttm=date_format(now(),'%Y%m%d%H%i%s') 라는 쿼리 일 때 index로 걸리는 건 id와 name 이 2개 여야 합니다. id, name, updttm 이렇게 3개를 걸면 ON DUPLICATE KEY UPDATE 구문이 안되더군요. 트랙백을 ..