정의: 하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합.집합 내의 연산들이 모두 성공해야 트랜잭션이 성공한 것으로 본다.만약 트랜잭션이 도중에 실패하거나 정상적으로 실행될 수 없다면, 아무것도 실행되지 않은 처음 상태로 되돌려져야 한다(ROLLBACK).트랜잭
SQL injection은 데이터베이스에 피해를 끼칠 수 있는 '코드 주입 기술(code injection technique)'이다.가장 일반적인 웹 해킹 기술 중 하나이다. 서비스에서 사용자에게 어떠한 input 행위를 요구할 때, 사용자는 입력값을 통해 SQL문을
MySQL DBMS의 전반적인 구조와 메커니즘을 파악하기 위해, SQL 튜닝에 관한 기본적인 용어를 반드시 알아야 한다. 물리 엔진과 오브젝트 용어 DBMS를 구성하는 엔진들과 내부 프로세스, 그리고 데이터를 저장하는 오브젝틀르 가리키는 용어들을 알아보자. SQL문
논리적인 SQL 개념 용어 출처: 업무에 바로 쓰는 SQL 튜닝
1. 조인 연산방식 용어 데이터가 다수의 테이블에 흩어져 있을 때, 필요한 데이터끼리 결합할 때 join이라는 방식을 사용한다. 분리된 데이터 간의 공통된 정보(동일한 컬럼값 또는 키값)를 기준으로 논리적으로 연결할 수 있다. 조인 방식에는 위와 같이 여러 가지가 있
개념적인 튜닝 용어 1. 오브젝트 스캔 유형 오브젝트를 스캔하는 유형에는 테이블 스캔(table scan), 인덱스 스캔(index scan)으로 구분한다. 테이블 스캔: 인덱스를 거치지 않고 바로 디스크에 위치한 테이블 데이터에 접근하는 스캔 유형 인덱스 스캔: 인
SQL 문 앞에 EXPLAIN, DESCRIBE, DESC 키워드를 입력하고 실행하면 옵티마이저가 만든 실행 계획이 출력된다. 실행계획의 id, select_type, table, type, key 등은 SQL 튜닝의 실마리를 제공한다. 각 정보가 무엇을 의미하는지
좋고 나쁨을 판단하는 기준 확장된 실행 계획 수행 프로파일링이란? SQL 프로파일링 실행하기 프로파일링 결과 실행하기 출처: 업무에 바로 쓰는 SQL 튜닝
SQL 튜닝을 위해 SQL 문을 확인하다 보면, SQL 문의 일부만 조정해도 성능을 향상할 수 있는 간단한 경우가 있는 반면 테이블을 설정을 바꾸거나, 인덱스 설계를 다시하거나, SQL 문을 아예 다시 작성해야 할 정도로 규모가 큰 작업을 하게 되는 경우도 있다.여기서
1. 사용하지 않는 함수를 포함하는 나쁜 SQL 문 1-1. 현황 분석 1-2. 튜닝 수행 1-3. 튜닝 결과 출처: 업무에 바로 쓰는 SQL 튜닝
급여 테이블에서 현재 유효한 급여 정보만 조회하고자 사용여부 컬럼의 값이 1인 데이터를 출력하는 쿼리가 있다고 하자.튜닝 전 실행 계획은 다음과 같다.type 항목이 index이므로 인덱스 풀 스캔 방식으로 수행하되,Key 항목의 I\\\_사용여부 인덱스를 사용함을 알
성별의 값과 1칸의 공백, 성의 값을 모두 결합한 결과가 'M Radwan'인 데이터를 조회하는 쿼리가 있다고 하자.스크린샷에는 보이지 않았으나, 글을 작성하는 시점에 이 쿼리는 0.22초가 소요되었음을 확인했다.튜닝 전 실행 계획은 다음과 같다.사원 테이블에만 접근하
부서 관리자의 사원번호, 이름, 성, 부서번호 데이터를 중복 제거하여 조회하는 쿼리가 있다고 가정하자.튜닝 전 실행 계획은 다음과 같다.부서관리자 테이블의 type 항목이 index이므로, 인덱스 풀 스캔 방식으로 수행된다.사원 테이블의 type 항목이 eq_ref이므