트랜잭션
Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법
- 이는 DDL이나 DML 중 레코드를 수정/추가/삭제한 것에만 의미가 있음
- BEGIN과 END 혹은 BEGIN과 COMMIT 사이에 해당 SQL들을 사용
- ROLLBACK
예를 들면 은행 계좌 이체 : 인출과 입금
- autocommit 기본값은 true, false라면 COMMIT이 호출될 때까지 커밋되지 않음
- 확인 방법 : SHOW VARIABLES LIKE 'AUTPCOMMIT';
자바 DB 연동
- DB_URL, USER, PASS 를 final로 변수 선언
- DriverManager.getConnection으로 연결
- sql을 실행하려면 statement를 만들어야함 createStatement
- excuteUpdate : 쓰기
- excuteQuery : select 등
Intellij JSP - MySQL 연동
View
자주 사용하는 SQL 쿼리에 이름을 주고 그 사용을 쉽게 하는 것 (가상 테이블)
CREATE OR REPLACE VIEW [이름] AS ~
SELECT * FROM [이름]
Stored Procedure
- MySQL 서버단에 저장되는 SQL쿼리들
- CREATE PROCEDURE 사용 / DROP PROCEDURE IF EXISTS로 제거
- 프로그래밍 언어의 함수처럼 인자를 넘기는 것이 가능
- IN 파라미터/INOUT 파라미터
Stored Function
- 모든 함수의 인자는 IN 파라미터
- SQL안에서 사용 가능
- CREATE FUNTION사용
[MySQL] 저장 프로시저, 저장 함수
Trigger
- Create Trigger
- INSERT/DELETE/UPDATE실행 전후에 특정 작업을 수행하는 것이 가능
- NEW/OLD modifier
[MySQL] 트리거(Trigger)의 활용
Explain SQL
- 여러 쿼리가 어떻게 수행되는지 내부를 보여주는 SQL명령
- 해당 쿼리를 어떻게 실행할 지 Execution Plan을 보여줌
- 보통 느린 쿼리의 경우 문제가 되는 테이블에 인덱스를 붙이는 것을 일반적
Index 튜닝
- 대용량 테이블에서 필요한 데이터만 빠르게 엑세스 하기 위해 사용하는 오브젝트
- 인덱스는 구성하는 컬럼 순서를 기반으로 정렬되기 때문에 범위 스캔이 가능하다.
'ORACLE/SQL 튜닝' 카테고리
SQL튜닝에 대해서는 해당 블로그에 정리가 잘 되어있는 것 같아서 참고하려고 한다 👍
4일차까지는 잘 따라온 것 같은데 마지막날 고급 기능들 배우는 게 조금 벅차서 링크를 걸어놓고 천천히 읽어보려고 한다. 좋은 강의 해주신 한기용님 감사합니다 🥰
다음주부터 스프링부트 시작한다 .... 화이팅!!!