일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- OOP
- java
- MYSQL
- exception
- Redis
- mybatis
- http
- 관점지향프로그래밍
- git
- RestControllerAdvice
- aop
- request
- response
- 디자인패턴
- aspect
- 자바
- Spring Security
- spring boot
- 객체지향프로그래밍
- 스프링
- network
- SQL
- proxy pattern
- Interceptor
- 스프링 시큐리티
- Spring
- 트랜잭션
- 인터셉터
- Filter
- 스프링부트
- Today
- Total
목록SQL (3)
장쫄깃 기술블로그
STRAIGHT_JOIN MySQL에는 STRAIGHT_JOIN 이라고 하는 JOIN이 있다. STRAIGHT_JOIN is similar to JOIN, except that the left table is always read before the right table. This can be used for those (few) cases for which the join optimizer processes the tables in a suboptimal order. 왼쪽 테이블을 강제로 먼저 읽는 JOIN이라고 보면 될 것 같다. 간혹 explain을 이용하여 쿼리 실행계획을 보면 index가 적용되지 않고 쿼리 타입이 ALL로 실행되는 경우가 있다. 이는 MySQL의 옵티마이저(optimizer)가..
INSERT IGNORE 중복키 제약조건에 위배되면 INSERT를 무시한다. 기본적으로 PRIMARY KEY를 기준으로 한다. INSERT IGNORE INTO USER (id, name, salary) VALUES ("user", "장쫄깃", 20000) REPLACE INTO 중복키 제약조건에 위배되면 해당 레코드를 삭제하고 다시 삽입한다. 기본적으로 PRIMARY KEY를 기준으로 한다. REPLACE INTO USER (id, name, salary) VALUES ("user", "장쫄깃", 20000)
DUPLICATE ON KEY UPDATE 데이터 삽입 시, PRIMARY KEY나 UNIQUE KEY가 중복되었을 경우 UPDATE, 중복이 아닌 경우 INSERT를 수행하는 구문이다. INSERT INTO [TABLE] (COLUMN1, COLUMN2, ...) VALUES (VALUE1, VALUE2, ...) ON DUPLICATE KEY UPDATE (COLUMN1 = VALUE1, COLUMN2 = VALUE2, ...) 기존 INSERT INTO 구문 뒤에 추가해서 사용하면 된다. 성능면에서도 괜찮은 구문이라는 말이 많다. 예) PK = id INSERT INTO USER (id, name, salary) VALUES("user", "장쫄깃", 20000) ON DUPLICATE KEY UP..