일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- Filter
- git
- Redis
- 스프링 시큐리티
- http
- 디자인패턴
- response
- mybatis
- 스프링
- exception
- Spring Security
- proxy pattern
- 자바
- MYSQL
- 관점지향프로그래밍
- spring boot
- aspect
- network
- RestControllerAdvice
- 스프링부트
- SQL
- 객체지향프로그래밍
- OOP
- request
- java
- aop
- 인터셉터
- Interceptor
- 트랜잭션
- Spring
- Today
- Total
목록MYSQL (5)
장쫄깃 기술블로그
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..
들어가며 기존에 SpringBoot에선 tomcat-jdbc를 기본 DataSource로 제공했다. 하지만 2.0부터 HikariCP가 기본으로 변경되었다.(참고) HikariCP는 이전 버전에서도 많은 사람들이 설정을 변경해서 사용했을 정도로 인기가 많았다. 이번 게시글에선 HikariCP의 DataSource 정보를 설정하는 방법에 대해서 알아보려고 한다. 더 나아가 다음 게시글에선 HikariCP를 이용하여 Transaction Read-Only 적용 시 Master / Slave DB 라우팅하는 방법까지 가보려고 한다. 1. Dependency 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' im..
Transaction, 트랜잭션 트랜잭션(Transaction) 이란, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산 기능들을 모아놓은 것이며 분리되지 않도록 하여 작업의 완전성을 보장한다. 트랜잭션을 통해서 데이터베이스의 회복과 병행 제어가 가능하다. 즉, 데이터베이스에서 오류가 발생하는 경우의 빠른 회복이나, 여러 사용자가 동시에 데이터베이스를 사용할 수 있도록 제어해주는 중요한 역할을 한다. 데이터베이스의 연산을 SQL문으로 표현한다면, 하나의 작업을 수행하는 SQL문의 집합으로 생각할 수도 있다. 트랜잭션의 특징 트랜잭션이 성공적으로 처리되기 위해서는 ACID라는 네 가지 성질을 만족해야 한다. 1. 원자성 (Automicity..