트랜잭션은 작업의 안정성을 보장해주는 것이다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상(Partial update)이 발생하지 않게 만들어주는 기능이다. 잠금(Lock)과 트랜잭션은 서로 비슷한 개념 같지만 사실 잠금은 동시성을 제어하기 위한 기능이고, 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. 하나의 회원 정보 레코드를 여러 커넥션에서 동시에 변경하려고 하는데 만약 잠금이 없다면 하나의 데이터를 여러 커넥션에서 동시에 변경할 수 있게 되고, 결국 해당 레코드의 값은 예측할 수 없는 상태가 된다. 트랜잭션 지금은 많이 달라졌지만 여전히 MySQL 서버에서는 MyISAM이나 MEMORY 스토리지 엔진이 더 빠르다고..
InnoDB 스토리지 엔진 아키텍처 1 InnoDB 스토리지 엔진 아키텍처 2 InnoDB 스토리지 엔진 아키텍처 3 MyISAM 스토리지 엔진 아키텍처 이번에는 MyISAM 스토리지 엔진의 성능에 영향을 미치는 요소인 키 캐시와 운영체제의 캐시/버퍼에 대해 살펴보자. 아래는 MyISAM의 간략한 구조이다. 키 캐시 InnoDB의 버퍼 풀과 비슷한 역할을 하는 것이 MyISAM의 키 캐시(Key cache, 키 버퍼라고도 불림)다. 하지만 이름 그대로 MyISAM 키 캐시는 인덱스만을 대상으로 작동하며, 또한 인덱스의 디스크 쓰기 작업에 대해서만 부분적으로 버퍼링 역할을 한다. key_reads는 인덱스를 디스크에서 읽어 들인 횟수를 저장하는 상태 변수이며, key_read_requests는 키 캐시로부..
- Total
- Today
- Yesterday
- 파이썬
- 북클럽
- 데이터베이스
- 알고리즘
- 구현
- 그리디
- 자료구조
- Real MySQL
- 정렬
- spring boot
- 노마드
- Spring
- 코테
- leetcode
- 백준
- 리팩토링
- MySQL
- 인프런
- 코틀린
- 스프링 부트
- 김영한
- 노마드코더
- 문자열
- 스프링
- kotlin
- webflux
- 스프링부트
- 릿코드
- Algorithm
- mysql 8.0
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |