[MySQL] 정합성과 잠금, 트랜잭션, 격리 수준 간단 정리
업무 중 트랜젝션 내에서 특정 테이블에 insert 한 데이터를 바로 다시 select 하는 비즈니스 로직을 작성하였는데, 이 조회 반환 값이 null이 되는 문제를 마주하게 되었다. 읽기 작업과 쓰기 작업의 DB 커넥션을 분리해서 사용하고 있었고, 커밋되지 않은 데이터였기 때문에 읽기용 커넥션에서 새로 추가한 데이터를 읽어올 수가 없었다. insert를 하는 커넥션과 동일한 커넥션에서 조회하도록 하여 문제는 해결하였지만, 문제의 원인이 궁금해졌다. (현재 MySQL InnoDB 스토리지 엔진을 사용 중이다.) 데이터 정합성 (Consistency) 데이터가 서로 모순 없이 일관되게 일치해야 함을 의미한다. 예를 들어, 상품 테이블에서 상품번호 1의 이름은 ‘도넛’인데, 주문 테이블에서 상품번호 1의 이..
Database
2022. 9. 26. 01:13
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 주니어개발자
- springboot
- pods
- MySQL
- 도커
- 샤드
- phpUnit
- NoSQL
- devops
- 리눅스 컨테이너
- 샤딩
- php
- 몽고디비
- mockery
- kubernetes
- database
- java
- laravel
- redis
- laravel 테스트
- 대규모 데이터 처리
- 라라벨
- index
- docker
- 쿠버네티스
- 백엔드
- mongoDB
- laravel 테스트코드
- k8s
- 분산처리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함