StoryCode

2023-226.MySQL,Architecture,아키텍처.우기

Database 관리/MySQL
반응형
About InnoDB      
Query Cache 동일한 Query 에 대해 Cache 하나 데이타 변경시 부하가 커서(캐시 데이타 삭제때마다 Lock 발생때문) MySQL  8 부터는 기능 폐지.
PK - PK 는 클러스터링 된다. 그러므로 회원별 조회가 많다면 반드시 PK 가 되는 것이 좋다. 다만 쓰기 기능은 느려진다. (클러스터링 처리를 위한 데이타 재 배열 발생때문)
- PK 가 없으면 암묵적 PK 생성되며 직접 접근 불가능
StorageEngine.MVCC.InnoDBBufferPool - Insert 후 Commit 하면 데이타를 BufferPool 에 보관.
- Update 하면 Commit 전이라도 데이타를 BufferPool 에 보관
StorageEngine.MVCC.UndoLog - Commit 전 데이타를 임시 보관
StorageEngine.MVCC.RedoLog - Commit 후 데이타를 저장.
Isolation Level 1) READ_UNCOMMITTED 일 경우 : BufferPool 값이 SELECT. 커밋 안된 데이타를 볼 수 있음 = Dirty Read
2) READ_COMMITED, REPEATABLE_READ, SERIALAZABLE : UndoLog 값이 SELECT. 커밋된 데이타만 볼 수 있음.
3) RPREATABLE READ : 내가 특정 트랜잭션에서 읽는 동안에는 동일한 결과만 나옴. 다른 트랜잭션에서 새로운 데이타를 추가할 수는 있음. Ex> 책가격을 보는 중인데, 판매자가 가격을 바꿔도, 적어도 내가 보던 트랜잭션에서는 책가격이 유지됨.
4) SERIALIZABLE : 완벽하지만 오류없음.
Adaptive Hash Index - Index Key 와 Page Address 쌍. Page Address 가 있으므로 Page 에 빨리 액세스 가능
- DB 가 자동으로 접근빈도 높은 데이타에 인덱스 생성함.
LockingLevel - Index Lock. 김씨를 조회씨 성씨 Index 를 탈 경우, 김씨 Index가 모두 Lock 이 걸림.
- Full Scan 시, 암묵적 PK Index 전체가 Lock 걸림.
- 즉 복합 인덱스 매우 중요해짐

 

반응형

'Database 관리 > MySQL' 카테고리의 다른 글

실시간 SQL LOG 남기는 방법  (0) 2023.09.18
콘솔.Tag자동완성  (0) 2023.07.31
Plan.용어.설명  (0) 2023.03.22
save as CSV  (0) 2022.01.07
표준 ANSI SQL MODE (Strict Mode) 사용 On/OFF  (0) 2019.05.03