관계형 데이터베이스 조회 최적화

DataBase/RDBMS 2023. 4. 29. 20:58

컴퓨터 구조 시간에 배운 것을 떠올려 보자.. CPU가 데이터를 저장하거나 조회하기 위해서는 I/O Bus를 통해 동작되는 것을 떠올릴 수 있다. 그리고, CPU가 데이터를 저장하기 위해서는 메모리와 디스크를 이용한다. 메모리는 전원이 차단되면 휘발되기 때문에, 데이터의 영속성을 위해서는 결국 디스크에 저장 된다. 디스크는 메모리에 비해 굉장히 느리다는 것을 익히 알고 있다. 그래서.. 데이터베이스 성능의 핵심은 결국 디스크 접근을 최소화 하는 것이다. 따라서, 메모리에 존재하는 데이터는 최대한 메모리로 끝내는게 좋다. -> 캐시 히트율 UP 그러면 쓰기도 메모리에 쓰면 좋지 않을까.. 메모리에 쓰면 데이터 유실이 생길 수 밖에 없는데.. 그러기 위해서는 WAL(Write Ahead Log)를 사용한다...

관계형 데이터베이스 조회와 쓰기 trade-off 1

DataBase/RDBMS 2023. 4. 29. 20:41

관계형 데이터 베이스에서 항상 고민해줘야 하는 부분들에 대해 알아보자.. 조회와 쓰기는 성능 관점에서 모두가 좋아지도록 만들 수 없다.. 지금부터 하나 씩 알아보도록 하겠다. 1. 데이터베이스 정규화/비정규화 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화(Normalization)라고 한다. 비유를 통해 알아보겠다. 우리가 소설을 쓴다고 생각해보자.. [A 상황] 1. 주인공의 이름이 김찬호인 300 Page 에 달하는 소설을 다 썻다. 2. 그런데 갑자기 주인공 이름을 손인욱이라는 이름으로 변경해야 할 상황이 생겼다. 3. 그러면 우리는 하나하나 모든 주인공 이름이 적힌 곳을 찾아가서 변경해줘야 할 것이다. (툴의 도움을 받지 않는다고 가정) 이번엔 두번째 상황을 보자 [B 상황] 1. 주인공..