[MySQL] 고급기능 살펴보기

suebeen·2021년 8월 14일
0

DB

목록 보기
5/5
post-thumbnail

트랜잭션

Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법

  • 이는 DDL이나 DML 중 레코드를 수정/추가/삭제한 것에만 의미가 있음
  • BEGIN과 END 혹은 BEGIN과 COMMIT 사이에 해당 SQL들을 사용
  • ROLLBACK

예를 들면 은행 계좌 이체 : 인출과 입금

  1. autocommit 기본값은 true, false라면 COMMIT이 호출될 때까지 커밋되지 않음
  2. 확인 방법 : SHOW VARIABLES LIKE 'AUTPCOMMIT';

자바 DB 연동

  1. DB_URL, USER, PASS 를 final로 변수 선언
  2. DriverManager.getConnection으로 연결
  3. sql을 실행하려면 statement를 만들어야함 createStatement
  4. excuteUpdate : 쓰기
  5. 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일차까지는 잘 따라온 것 같은데 마지막날 고급 기능들 배우는 게 조금 벅차서 링크를 걸어놓고 천천히 읽어보려고 한다. 좋은 강의 해주신 한기용님 감사합니다 🥰

다음주부터 스프링부트 시작한다 .... 화이팅!!!

0개의 댓글