데이터베이스

Database를 Master/Slave 구성해야 하는 이유, Application에서는 어떻게 활용해야하는지에 관하여 정리해보려 한다. Database Replication의 동작원리나 Database의 구성형태에 대해서는 다루지 않는다. (사실 잘 모른다.) 왜 Database를 Master/Slave로 나누었을까? Application에서는 Master/Slave DB을 활용하기 위해 어떻게 구현을 했으며 어떤 고민들이 있었을까? Master Database만 구성하였을 때의 한계점 나의 첫번째 회사는 B2B서비스를 제공하는 회사였다. 그러다보니 시스템 사용자수는 한정되어(국내/해외 법인)있었고 트래픽이 증가할일이 거의 없었다. 그렇기 때문에 Application 구성도가 굉장히 단순했다. (극단적..
조인수행원리조인이란 두 개 이상의 테이블을 하나의 집합으로 만드는 연산조인 연산은 두 테이블 사이에서 수행된다.FROM절에 A, B, C라는 세 개의 테이블이 존재하더라도 세 개의 테이블이 동시에 조인이 수행되는 것이 아니라, 세 개의 테이블 중에서 먼저 두개의 테이블에 대해 조인이 수행되고 그 수행된 조인 결과와 나머지 테이블 사이에서 조인이 수행된다. 이러한 작업은 FROM 절에 나열된 모든 테이블을 조인할 때까지 반복 수행된다.A->B->C , A->C->B 이런 순서로 조인이 실행될 수 있음테이블 또는 조인 결과를 이용하여 조인을 수행할 때 조인 단계별로 다른 조인 기법을 사용할 수 있다. NL JoinNL Join은 프로그래밍에서 사용하는 반복문과 유사한 방식으로 조인을 수행한다.반복문 외부에 ..
인덱스 기본1. 인덱스 특징과 종류인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 색인과 유사한 개념이다.인덱스의 기본적인 목적은 검색 성능의 최적화이다. Insert, Update, Delete 등과 같은 DML 작업은 테이블과 인덱스를 함께 변경해야 하기 때문에 오히려 느려질 수 있는 단점이 존재한다. 트리 기반 인덱스DBMS에서 가장 일반적인 인덱스는 B-트리 인덱스이다.B-트리 인덱스는 브랜치 블록(Branch Block)과 리프 블록(Laef Block)으로 구성브랜치 블록 중에서 가장 상위에서 있는 블록을 루트 블록(Root Block)이라 한다.브랜치 블록은 분기를 목적으로 하는 블록이다. 다음 단계의 블록을 가리키는 포인터를 가지고 있다.리프 블록은 트리의 가장 아래 단계에 존재한..
깡냉쓰
'데이터베이스' 태그의 글 목록