1. Lock # Overview 공유락과 베타락에 대해 공부하였지만 락이 언제 발생하는지 쉽게 이해 되지는 않았습니다. 블로그 글을 읽어보기 보단 직접 실험해 보면서 이해해 보고자 합니다. # Tip Lock을 이해하기 위해서 Isolation level과 함께 알아보려고 합니다. 각 레벨에서 SELECT(공유락)과 UPDATE(베타락)이 어떻게 작용하는지 이해해 보면 좋을것 같습니다. # 오해 저는 베타락에 대한 오해가 몇가지 있었습니다. 1. 공유락과 베타락은 단순히 SELECT와 UPDATE를 사용하면 적용되는줄 알았습니다. 2. Isolation level에 상관없이 베타락과 공유락의 작동 규칙이 동일한 줄 알았습니다. # KeyPoint 핵심만 보고 싶으시면 REPEATABLE READ의 UP..
DeadLock # Overview 이전 게시글에서 데드락의 개념에 대해 알아보았습니다. 데드락의 개념적 정의에 대해서는 쉽게 이해 하였지만 MySQL에서의 데드락은 어떻게 발생되는 것인지 이해하지 못하였습니다. 직접 데드락을 발생시켜 발생 조건과 원리에 대해 이해하려고 합니다. # Tip 데드락을 2가지의 경우로 발생시켜 보려고 합니다. 1. Row 1개 사용 2. Row 2개 사용 이번 게시물에서는 Row를 1개 사용하여 데드락을 발생시키는 것이 목표입니다. 1. DeadLock 발생 [ DeadLock 실행 순서 ] # 트랜잭션1 > START TRANSACTION; > SELECT * FROM LOGIN_USER_DATA WHERE ID="5" LOCK IN SHARE MODE; # 트랜잭션2 >..
DeadLock # Overview 이전 게시글에서 데드락의 개념에 대해 알아보았습니다. 데드락의 개념적 정의에 대해서는 쉽게 이해 하였지만 MySQL에서의 데드락은 어떻게 발생되는 것인지 이해하지 못하였습니다. 직접 데드락을 발생시켜 발생 조건과 원리에 대해 이해하려고 합니다. # Tip 데드락을 2가지의 경우로 발생시켜 보려고 합니다. 1. Row 1개 사용 2. Row 2개 사용 이번 게시물에서는 Row를 2개 사용하여 데드락을 발생시키는 것이 목표입니다. 1. DeadLock 발생 [ DeadLock 실행 순서 ] # 트랜잭션1 > START TRANSACTION; > UPDATE LOGIN_USER_DATA SET NAME="deadlock_test" WHERE ID="1"; # 트랜잭션2 > ..
TIL. 인덱스 학습 키워드 # Keyword 1. 인덱스란 무엇인가? 2. 인덱스의 종류 3. 인덱스의 자료구조 4. 인덱스의 내부작동 5. 클러스터형 인덱스와 보조 인덱스의 구조 6. 마무리 정리 # Reference 이것이 MySQL이다 (책) 망나니 개발자 (블로그) 1. 인덱스(Index)란? [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데..
TIL "이것이 MySQL이다"를 읽고 공부한 내용과 추가적으로 알아야 할 내용을 정리하고자 합니다. 망나니개발자의 게시글을 기반으로 추가적인 내용을 더하였습니다! 기본적인 내용은 정리하지 않을 것이기에 첨부된 링크로 대체하겠습니다. 책 : 이것이 MySQL이다 / Real MySQL(절판) 블로그 : 망나니 개발자, victolee 등등.. (Reference참고) 공부 키워드 #MySQL #Isolation #persistence #영속성 #ACID #DeadLock #트랜잭션 #동시성제어 #회복 트랜잭션 트랜잭션이란 "질의를 처리하다" 실행이 중단되었을 경우 Rollback하거나, 실행 중 오류가 없을경우 commit을 하는 실행단위를 의미합니다. 즉, 간단하게 "작업수행의 논리적 단위" 입니다. ..