본문 바로가기

Computer Science/Database6

[DB] Lock을 활용한 Concurrency Control 기법 다시 돌아온 CS 공부하는 주디! 블로그 포스팅 스터디를 하고 있지만 이미 벌금 12000원을 납부한 그녀.. 🤖 : 야 너 취업하더니 의지가 다 어디 갔냐 🐰 : 칼퇴해도 운동하고 집 가면 하루가 없다고!!! 🤖 : 변명이야!!! 열공해라 주디 🐰 : ㄴ ㅔ . . . 오랜만에 CS 공부하러 출~발~ ⛄️ DB Locking 오늘은 Lock을 활용한 Concurrency Control 기법을 공부해보려고 한다. Concurrency Control 기법?! 오!! 이거 주디 블로그 시리즈물 아닌가? 맞다!! 아래 내용을 참고하면 된다! [DB] 트랜잭션 #1 | 개념과 ACID 속성 [DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) [DB.. 2023. 12. 24.
[DB] 인덱스 (index) 🔖 인덱스 (index) 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 즉, index는 데이터의 주소값을 저장하는 별도의 특별한 자료 구조이다. index를 활용해서 빠르게 원하는 데이터를 찾을 수 있다. ✔️ Point 1 : DB 테이블에 인덱스(index)가 필요한 이유 🧐 만약 table에 index를 걸지 않으면 어떻게 될까? SELECT * FROM customer WHERE first_name = "Jeongyoon"; 원하는 데이터를 찾고 싶을 때 table 전체를 full scan 해야 한다. 즉, first_name에 index가 걸려있지 않다면 "Jeongyoon"을 찾기 위해서는 모든 데이터를 하나씩 확인해야 한다. full .. 2023. 2. 16.
[DB] 트랜잭션 #3 | Isolation level(격리 수준)과 이상 현상 (+면접 질문) 🔎 트랜잭션 (Transaction) 2부에서 concurrency control(Serializability, Recoverability)에 대해서 알아봤다. 트랜잭션의 Isolation이 제대로 유지되려면 복수의 트랜잭션을 동시에 실행할 경우, 이상 현상이 일어나지 않도록 한다. 이것을 보장하기 위한 중요한 속성이 Serializability과 Recoverable이다. 즉, 이 두 가지 속성이 보장될 수 있도록 해야 한다. 하지만 이때 동시에 처리할 수 있는 트랜잭션의 수가 줄어들어서 DBMS의 퍼포먼스가 하락한다는 단점이 있다. 이를 해결하기 위해 DBMS의 concurrency control은 여러 종류의 Isolation level을 제공해서 개발자가 데이터 정합성과 성능 사이에서 어느 정도 .. 2023. 2. 11.
[DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) 🔎 트랜잭션 (Transaction) 1부에서 트랜잭션에 대한 개념과 속성에 대해서 알아봤다. ACID 중 'Isolation'은 복수의 트랜잭션을 동시에 실행할 경우, 이상 현상이 일어나지 않도록 한다. 이것을 보장하기 위한 중요한 속성이 Serializability과 Recoverable이다. * 참고로 DBMS의 concurrency control(동시성 제어)이 이 두 가지를 제공해야 한다. 📑 목차 [DB] 트랜잭션 #1 | 개념과 ACID 속성 [DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) - 현재 포스팅 [DB] 트랜잭션 #3 | Isolation level(격리 수준)과 이상 현상 (+면접 질문) concurrency c.. 2023. 2. 10.
[DB] 트랜잭션 #1 | 개념과 ACID 속성 🔎 트랜잭션 (Transaction) 대용량 데이터 동기화 등을 처리하다 보면 개발자가 트랙잭션을 어떻게 처리 하느냐에 따라 데이터의 정합성 등에 영향을 주게 된다. 그래서 백엔드 개발자로서 트랜잭션은 중요한 개념이다. 트랜잭션과 관련된 내용은 많기 때문에 3부로 걸쳐 살펴보자. [DB] 트랜잭션 #1 | 개념과 ACID 속성 - 현재 포스팅 [DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) [DB] 트랜잭션 #3 | Isolation level(격리 수준)과 이상 현상 (+면접 질문) 개념과 ACID 속성 - 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며 데이터베이스에 접근하는 방법은 쿼리이므로, 즉.. 2023. 2. 10.
[Database] 인덱스 (Index) 작년 SQLD 자격증을 취득하면서 인덱스에 대한 개념을 공부했다. 그리고 2차 프로젝트에서 필드에 인덱스를 걸어서 조회 속도를 향상시키고 싶었다. 인덱스에서 대해서 조금 더 자세하게 알 수 싶어 공부했고 기록으로 남겨보자! ✍️ 1. 인덱스란? 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 인덱스를 사용하는 이유는 조회 기능을 향상하기 위해서이다. 1) 특징 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념이다. (장점) 조회 성능에 좋다. (단점) Insert, Update, Delete 등과 같은 DML 작업은 테이블과 인덱스를 함께 변경해야 하기 때문에 오히려 느려질 수 있다. 2) 종류 왜 인덱스를 타면 조회가 .. 2022. 5. 11.
반응형