본문 바로가기

Interest/mysql

(4)
mac - mysql 접속 compressed protocol 을 false로 처리해서 접속해야 하는 일이 있었는데... Sequel pro 로 접속을 시도 했을때 connecting... 에서 멈춰 버렸다... 처음엔 서버쪽 문제인줄 알았는데 terminal로 접속은 잘 되어서 클라이언트의 문제로 일단락이 되었다. 그래서 sequel pro외에 다른 방법으로 접속하는 방법을 정리해 볼 까 한다. 1. Sequel Pro - compressed protocol 을 설정하는 것이 없어서;; 얘는 버리기로. 2. SQL developer - 원래 오라클 db에 접속하는 툴인데, third party 로 jdbc 접속기능이 있었다. 이걸로 mysql로 접근 - 도구 > 환경 설정 > 확장 > 갱신 확인 - http://blog.nave..
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 구문이 안되더군요. 트랙백을 ..