반응형

Read 에서 전반적인 흐름은 유저가 요청을 하면 서버에서 데이터 베이스에 자료를 요청하고 데이터베이스는 큰 램에서 데이터가 있다면 리턴 그렇지 않다면 하드에서 읽어 리턴하는 형식이 된다

 

노란색이 유저이고 데이터 read 요청을 한다면 노란색 박스인 램 즉 하드에서 미리 올려놓은 램에서 보고 데이터가 있다면 리턴하고 그렇지 않다면 하드에서 읽어들여온다 

만약 램이 다 차면 LRU 방식 등으로 날린다

LRU 알고리즘 : 가장 오랫동안 참조되지 않은 페이지를 교체하는 기법

 

램엔 데이터뿐만 아니라 인덱스 또한 올려 놓게되어 빠른 처리를 하는데 돕게 된다

 

 

 

 

쓸때는 쓰는 스레드를 빽단에서 돌려 별도로 쓰게 하여 하드로 접근하여 데이터를 다 쓸때까지의 대기 시간을 줄이는 방식이다

 

유저가 서버에 요청하면

SQL 파싱 처리후 DB 에 쓰기 명령 을 보낸다

데이터베이스에서 빽그라운드에서 쓰기를 처리한다

 

 

락의 종류

 

 

shared 는 read_write rock 을 말한다 : 읽을때는 동시에 동기화 부하 없이 읽다가 

쓸때는 한번에 하나만 처리 되는 방식이다, 다른 스레드는 진입 불가

 

Exclusive 는 mutex 같은 것이라 생각하면 된다

 

Update 락은 shared, exlusive 준간 정도로 처음엔 shared 로 동작하다가 상황에 따라 Exclusive 로 동작하는 락이다

 

 

row 에 가까워 질 수록 락 범위가 작아지고 윗단에서 잡을 수록 전반적으로 느려지고 자원소모가 덜해지는 경향을 보인다

ex ) row 를 몇백개 잡는 일이 발생한다면 Page 단에서 lock 을 잡는 것이 더 빠를 수 도 있다 => 하지만 어차피 데이터베이스에서 알아서 처리한다

 

 

 

트랜잭션 특징 ACID

 

1,4번이 중요함

 

원자성 : 만약 두개의 정보를 동시에 변경 해야 할때 한개만 변경되고 완료 처리가 되면 안된다는 것

 

지속성 : 물리적인 장애로 문제가 발생해도 저장해야 하는데, 만약 데이터 저장이 실패하면 롤백해야함

=> DB 에서 어떤 작업을 할때 항상 로그를 남긴다 => 이 로그를 통해 정전이 일어나서 중간 과정이 날라갔다 하더라도 로그로 기록은 남아 있기 때문에 해당 부분의 작업을 되살리거나 되돌릴 수 있다

 

 

 

 

반응형

'서버(Server) > DB' 카테고리의 다른 글

redis (2) 설치 와 기본 사용법과 컨셉  (0) 2023.04.05
NOSQL - Redis (1)  (0) 2023.04.04
[MSSQL] 예상 실행계획  (0) 2023.04.02
Clustered(바로 찾기), Non-Clustered (경유해서 찾기)  (0) 2023.03.03
DB : 복합 인덱스  (0) 2023.03.02

+ Recent posts