In-Memory Database
디스크가 아닌 주 메모리에 데이터를 보유하고 있는 데이터베이스
장점
- 자료 접근 및 처리가 빠름
- 메모리상에 인덱스를 넣어 필요한 모든 정보를 메모리상의 인덱스를 통해 빠르게 검색 가능
단점
- 휘발성이기 때문에 꺼지면 데이터들이 삭제됨
- 속도 때문에 사용하는 것이라 압축을 하지 않음, 이에 따라 RAM 용량이 넉넉하지 않을 경우 가상메모리를 사용하게 되어 역효과가 일어나기도 함
특징
- ACID 중 영속성(Durability)를 보장하기 위해 INSERT, UPDATE, DELETE된 값들은 디스크에 로그로 기록
- DBMS가 재구동될 때 디스크로부터 로그 파일을 읽어와 메모리에 재구축 가능
💡 ACID : 트랜젝션을 정의하는 4가지 속성
원자성(Automicity) - 트랜잭션에 속한 각각의 문(CRUD)을 하나의 단위로 취급
일관성(Consistency) - 트랜잭션이 테이블에 변경 사항을 적용할 때 미리 정의된 예측할 수 있는 방식만 취함
독립성(Isolation) - 여러 사용자가 같은 테이블에서 동시에 읽고 쓰기 작업을 할 때, 각 트랜잭션을 격리하면 동시 트랜잭션이 서로 방해하거나 영향을 미치지 않음
영속성(Durability) - 트랜잭션 실행으로 인해 데이터에 적용된 변경 사항이 저장되도록 보장
왜 In-Memory가 더 빠를까?
- 메인 메모리에 저장하고 처리하기 때문에 디스크 접근과 같은 느린 입출력 작업이 필요하지 않음
- 일반적인 DB에서 캐시는 빈번히 사용되는 몇몇 데이터만 메모리에 저장하므로 디스크 액세스를 줄이기 위해 사용되지만, InMemory DB는 모든 데이터를 메모리에 저장하여 캐시 메커니즘이 훨씬 더 효과적으로 작동
'ETC' 카테고리의 다른 글
EDA(Event Driven Architecture) (0) | 2023.06.14 |
---|---|
RabbitMQ와 Kafka (0) | 2023.06.13 |
Tokenizer란? (0) | 2023.06.12 |
FastAPI가 뭘까? (0) | 2023.06.09 |
MSA(MicroService Architecture) 의 통신 방법 (0) | 2023.06.07 |