문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 | 다음 판 양쪽 다음 판 | ||
database:mysql:performance [2019/03/31 13:56] kwon37xi |
database:mysql:performance [2019/03/31 14:17] kwon37xi |
||
---|---|---|---|
줄 14: | 줄 14: | ||
* MySQL은 기본적으로 Read 에 Lock을 걸지 않는다. MVCC로 ISOLATION Level에 따라 값을 가져온다. | * MySQL은 기본적으로 Read 에 Lock을 걸지 않는다. MVCC로 ISOLATION Level에 따라 값을 가져온다. | ||
* [[database: | * [[database: | ||
+ | |||
+ | ===== Covering Index (커버링 인덱스) ===== | ||
+ | * select 대상 필드, order by, group by 등에 속하는 필드들을 모두 인덱스에서 값을 얻어올 수 있는 인덱스. 매우 속도가 빠르다. | ||
+ | * PK 가 아닌 모든 인덱스는 그 끝단 데이터로 PK도 함께 가지고 있다. 따라서 PK는 인덱스에서 읽을 수 있다. | ||
+ | * 실행 계획을 봤을 때 **Extra: Using index**가 있다면 커버링 인덱스로 모두 해결된 것. | ||
+ | * 커버링 인덱스를 만들 때는 다음 순서로 한다. | ||
+ | * WHERE 조건에 있는 컬럼 최우선 | ||
+ | * ORDER BY / GROPU BY 컬럼 그 다음 | ||
+ | * SELECT 에 있는 컬럼을 마지막 | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * 커버링 인덱스도 데이터이므로 마구 만들면 안 된다. 데이터량이 폭증하게 된다. | ||
+ | * **SELECT/ | ||
+ | |||
===== 모니터링 툴 ===== | ===== 모니터링 툴 ===== | ||
* [[http:// | * [[http:// |