본문 바로가기

RDBMS

조인 종류 및 수행원리 조인의 종류 및 수행원리 조인의 종류1. NL ( Nested loop Join )2. Sort Merge Join3. Hash Join 조인의 수행 원리1. NL ( Nested loop Join )for문을 중첩하여 랜덤하게 데이터를 액세스하는 조인 방식선행테이블 (외부테이블) 에서 조건에 만족하는 데이터 (행) 만큼 반복 수행 ① 선행 테이블에서 주어진 조건에 만족하는 행을 찾음② 선행 테이블의 조인 키 값을 가지고 후행 테이블에서 조인 수행③ 후행 테이블의 인덱스에 선행 테이블의 조인 키가 존재하는지 확인④ 인덱스에서 추출한 레코드 식별자를 이용하여 후행 테이블을 엑세스⑤ 후행 테이블에 주어진 조건까지 모두 만족하면 해당 행을 추출 버퍼에 삽입⑥ 앞의 작업을 반복 수행 2. Sort Merge J.. 더보기
트랜잭션 정리 트랜잭션이란 ?데이터베이스의 상태를 변화시키기 위한 작업의 단위 트랜잭션의 성질(특성) ACID+S1. 원자성 (Atomicity)- 트랜잭션은 분리할 수 없는 하나의 단위로 모두 완료되거나 모두 취소되어야 하며, 완전히 끝나지 않았을 경우에는 처음과 동일하여야 한다.2. 일관성 (Consistency)- 사용되는 모든 데이터는 한 방향으로만 전달되어야 한다.3. 격리(고립) 성 (Isolation) - 접근하고 있는 데이터는 다른 트랜잭션으로부터 격리되어야 한다.즉, 트랜잭션 진행 전과 완료 후에 상태를 볼 수 있지만 트랜잭션이 진행되는 중간 데이터는 볼 수 없다.4. 영속(지속) 성 (Durability)- 트랜잭션이 정상 종료되면 그 결과는 영구적으로 데이터베이스에 적용되어야 한다.* 순차성(Seq.. 더보기
정규화와 반정규화 정규화란 ? 데이터의 중복성의 제거하여 여러 엔티티의 조인이 발생하는 데이터베이스 환경에서 성능을 향상시키기 위한 데이터 구조화 프로세스 정규화의 방법- 낮은 차수의 정규화를 만족한 상태로 높은 차수의 정규화를 진행 정규화 단계1) 제1정규화- 중복되는 컬럼제거 2) 제2정규화- 종속되는 값 제거 3) 제3정규화- 엔티티(테이블명)에 맞는 데이터로 분리 반정규화란 ? 정규화로 인해서 테이블의 수가 증가하게 되면, 다수의 JOIN이 발생함에 따라 성능 저하가 발생할 수 있다. 이 문제를 해결하고자 정규화 과정이 모두 마무리 한 다음 반정규화를 실시한다. 단, 테이블을 합치는 것만이 반정규화는 아니다.그룹에 대한 합계 같은 값을 미리 계산하여 테이블에 저장 ( 기존 테이블을 Sum 하여 확인하지 않고 별도의.. 더보기
Replication Replication ( streming Replication ) 1. Master ( Primary ) 서버 구성$ psql –U postgres -p 5432postgres=# CREATE ROLE replication REPLICATION LOGIN PASSWORD 'password'; # 동기화 계정 생성$ vi /raid/usr/local/pgsql/data/data/postgresql.conf# Replication 관련 parameter 수정---------------------------------------------------------------------------------------------#------------------------------------------------.. 더보기
설치 PostgreSQL Source setup ( CentOS 6.5 / PostgreSQL 9.5.5 ) 1. PostgreSQL 설치파일 다운# wget https://ftp.postgresql.org/pub/source/v9.5.5/postgresql-9.5.5.tar.gz 2. PostgreSQL 설치# tar xvzf postgresql-9.5.5.tar.gz# cd postgresql-9.5.5# ./configure --prefix=/raid/usr/local/pgsql --bindir=/raid/usr/local/pgsql/bin --datadir=/raid/usr/local/pgsql/data --enable-depend --enable-nls=ko --with-openssl** --pref.. 더보기
설치 MySQL Source Setup ( CentOS 6.5 / MySQL-5.6.35 ) 1. MySQL 설치파일을 다운# wget --no-check-certificate https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz** wget : 웹 서버로부터 콘텐츠를 가져오는 컴퓨터 프로그램 ** 2. 컴파일 툴 다운 # wget --no-check-certificat https://cmake.org/files/v3.8/cmake-3.8.0-rc2.tar.gz 3. 다운받은 파일 압축 해제# tar xvzf cmake-3.8.0-rc2.tar.gz# tar xvzf mysql-5.6.35.tar.gz 4. CMAKE 설치# cd cmake-3... 더보기
MySQL 설정값 ( my.cnf / my.ini ) Aborted_clients : 클라이언트 프로그램이 비정상적으로 종료된 수 Aborted_connects : MySQL서버에 접속이 실패된 수 Max_used_connections : 최대로 동시에 접속한 수 Threads_cached : Thread Cache의 Thread 수 Threads_connected : 현재 연결된 Thread 수 Threads_created : 접속을 위해 생성된 Thread 수 Threads_running : Sleeping 되어 있지 않은 Thread 수 더보기