분류 전체보기
-
-
CS : DB : Block vs Non-Block, Sync vs AsyncComputer Science/DB 2021. 4. 13. 19:04
Block vs Non-Block vs Sync vs Async ** 이해를 돕기 위해 다음과 같이 의미를 정의한다. >> 제어권 : 행동할 수 있는 권한 >> 결과값 : 함수의 리턴값 1. Block vs Non-Block '제어권'에 대해 통제하는 방법의 차이라고 할 수 있다. function A가 function B를 호출하는 상황이라고 할 때, Block : A가 가지고 있던 제어권을 B에게 넘겨주고, B가 모든 작업을 마무리 한 후 A에게 제어권을 넘겨준다. Non-Block : A가 가지고 있던 제어권을 B에게 넘겨주고, B는 작업을 계속 이어가지만 제어권은 A에게 넘겨준다. 2. Sync vs Async '결과값'에 대해 반환 여부의 차이라고 할 수 있다. 즉 system call이 즉시 r..
-
CS : DB : paging, no offset, covering indexComputer Science/DB 2021. 4. 13. 18:47
Paging 1. DB에서 데이터를 읽어와 화면에 출력할 때, 한꺼번에 모든 데이터를 가져오는 것보다, 출력될 페이지의 데이터만 나눠서 가져오는 것을 말한다. 2. 기초적인 페이징 구현 방식은 대용량 데이터를 다룰 때에 효과적이지 못할 수 있다. 3. 이 때 사용할 수 있는 방법으로, no offset 방식을 사용하는 것과, 커버링 인덱스를 사용하는 것에 대해 설명하겠다. No Offset 방식 1. 기존의 페이징 쿼리는 다음과 같은 형태이다. 이와 같은 형태의 페이징 쿼리가 뒤로 갈수록 느린 이유는, 앞에서 읽었던 행을 다시 읽어야 하기 때문이다. 2. 이러한 문제를 해결하는 no offset 방식은, 조회 시작 부분을 인덱스로 빠르게 찾아 매번 첫 페이지만 읽도록 하는 방식이다. 3. no offse..
-
CS : DB : 트랜잭션과 격리 수준Computer Science/DB 2021. 4. 13. 18:46
Transaction (트랜잭션) 여러 작업들을 하나로 묶은 단위이다. 때문에, 하나로 묶인 여러 작업들은 모두 실행 되거나, 모두 실행 되지 않거나 둘 중 하나이다. 트랜잭션의 성질 (A) atomicity : 트랜잭션의 작업이 부분적으로 실행되거나 중단되지 않음을 보장한다. (C) consistency : int 타입 컬럼에 string 타입이 저장되지 않도록 보장한다. (I) isolation : 트랜잭션 수행 중에는 다른 트랜잭션이 끼어들지 않도록 보장한다. (D) durablility : 성공적으로 수행된 트랜잭션은 영원히 반영됨을 보장한다. 트랜잭션의 병행 처리 시 문제점 갱신 내용 손실 현황 파악 오류 모순성 연쇄 복귀 : 두 트랜잭션이 하나의 레코드를 갱신할 때, 하나의 트랜잭션이 롤백하면..