Sql 튜닝 찍먹 해보기

1

튜닝이란?

2

쿼리를 잘짠다는건...뭘까?

3

그렇다면 어떻게?

5

노하우, 꿀팁 공개

4

쿼리가 실행되는 구조를 알아봅시다.

6

Q&A

{튜닝?!}

Text

위키

위키

한라대학교 장성국 교수
자동차 튜닝은 무엇인가? 투고중 발췌

{쿼리를 잘 짠다는 건... 뭘까?}

1. Provide Correct Formatting for the Query

2. Specify the SELECT fields instead of using SELECT *

3. Remove Correlated Subqueries if not required

4. Limit the results obtained by the query

5. Remove The DISTINCT Clause if not required

6. Avoid Functions in Predicates

7. Avoid OR, AND, NOT operators if possible

8. Use WHERE clause instead of HAVING clause whenever possible

9. Use INNER JOIN instead of WHERE clause for creating joins

10. Avoid Wildcard Characters at the beginning of a LIKE clause pattern

좋은 쿼리의 조건

  1. 응답 속도가 빨라야한다
  2. 쿼리 캐시가 가능한 엔진인지 여부에 따라 쿼리 캐시가 가능하도록 설계한다. (버전에 따라 차이가 있음)
  3. Human readable

{그렇다면 어떻게?}

{쿼리 실행 구조를 알아봅시다}

쿼리파서

syntax검사, 토큰화

전처리기

- 유효한 토큰인지, 권한은 있는지,

옵티마이저

넘어온 파스트리 -> 실행 계획으로 전환
쿼리 재작성, 테이블 스캔 순서 결정, 사용할 인덱스 선택
비용기반 최적화(대부분의 rdb는 비용기반 최적화), 규칙 기반 최적화(동일한 sql인 경우 같은 실행 계획)

실행 엔진 : 스토리지 엔진과 통신하여 데이터를 가져옴
스토리지 엔진 : 실행 엔진의 요청을 처리하기 위한 디스크로부터 읽기 / 쓰기

여러개 동시에 사용 가능

스토리지 엔진

InnoDB 스토리지 엔진

- 트랜잭션 가능

MyISAM 스토리지 엔진

-트랜잭션 불가능

{노하우, 꿀팁 공개}

{Q&A}

Code

By xesper

Code

  • 344