DB 2

데이터 모델링 관점에서의 sql vs nosql feat. ddia

제목의 sql과 nosql은 각각 relational database와 document database를 의미한다.  joinmongoDB 같은 document database에서는 일반적으로 join연산을 지원하지 않는다.(물론 비슷한 연산을 수행하도록 지원은 하지만 relational database에 비해 훨씬 최적화 돼있지 않으므로 무시하겠다.)때문에 한 document에 정보를 그대로 때려 박는 경우가 많고 document database가 적절한 환경에서 해당 방법이 더 효율적이다.(비정규화) 하지만 만약 애플리케이션에 다음과 같은 기능이 있다면 어떨까유저 a,b가 있을 때 만약 a가 b를 추천하면 b의 개인프로필 페이지에 추천한 유저인 a의 이름과 프로필 사진이 보인다. document da..

DB 2024.06.14

RDBMS 인덱스

RDBMS의 인덱스는 데이터 조회 시 더 빠르게 조회 하기 위해 특정 컬럼 또는 특정 컬럼들로 미리 정렬을 해두는 것이다. 예시로 아래와 같은 쿼리문이 있다 할때 SELECT name FROM USER_TABLE WHERE sign_up_date < '2015-12-25' 인덱스가 없다면 테이블을 전부 읽어봐야 겠지만(FULL TABLE SCAN) sing_up_date에 대한 인덱스가 있다면 '2015-12-25' 이전 데이터만 전부 가져오면 될 것이다. 인덱스는 테이블을 물리적으로 정렬 시켜버리는 클러스터드 인덱스가 있고 정렬된 인덱스 테이블을 따로 만드는 넌 클러스터드 인덱스가 있다. 물리적으로 정렬을 시켜버리는 만큼 클러스터드 인덱스는 테이블 당 하나밖에 못만들고 따로 테이블을 만드는 넌 클러스터..

DB 2023.05.23