본문 바로가기

데이터베이스

(3)
[DB]인덱스와 인덱스의 장단점 [인덱스(index)란] 데이터베이스 검색 속도를 높이는데 사용되는 자료구조 이다. 인덱스(index)는 책 뒤에 있는 색인 같은 것이다. 찾아야 할 내용이 있을 때 색인을 보고 해당 페이지로 가서 원하는 정보를 얻을 수 있다. 만약 색인이 없다면 책 첫 페이지부터 마지막 페이지까지 모두 넘겨봐야 한다. [인덱스 설정에 따른 실행 계획] 인덱스가 설정 되어 있지 않는 경우 인덱스가 없는 상태에서 데이터를 조회하게 되면 Full Table Scan을 하게 된다. 인덱스가 설정 되어 있는 경우 [인덱스의 관리] 인덱스는 항상 최신의 정렬 상태를 유지해야 원하는 값을 빠르게 탐색 할 수 있다. 따라서 인덱스가 적용된 컬럼에 변경 작업이 있다면 연산을 추가적으로 해주어야 하므로 이에 따른 오버해드가 발생한다. ..
INNER JOIN과 OUTER JOIN [JOIN] 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립된다. 하지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능하다. FROM 절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어난다는 것이다. 테이블의 조인 순서는 옵티마이저에 의해서 결정된다. Table A id userId name 1id001youn 2id002life 3id003mysql 4id004oracle 5id005databasel -- Table B id userId nickName 1id001nickYoun 2id002nickLife 4id004nickOracle ..
DB 트랜잭션(Transaction)과 트랜잭션 격리 수준(Isolation Level) [트랜잭션] 여러 읽기/쓰기를 논리적으로 하나로 묶음으로 하나의 트랜잭션 내에서 여러 쿼리의 결과를 모두 커밋되거나 모두 롤백이 된다. 트랜잭션 범위는 커넥션을 기준으로 따라간다. [트랜잭션 특징] Atomicity(원자성) 트랜잭션은 DB에 모두 반영되거나 전혀 반영되지 않아야 한다. (all or nothing) Consistency(일관성) 트랜잭션 작업 처리결과는 항상 일관성 있어야 한다. Isolation(독립성) 둘 이상의 트랜잭션이 동시 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다. Durability(지속성) 트랜잭션이 성공적으로 완료되었으면 결과는 영구히 반영되어야 한다. [트랜잭션의 격리 수준(Transaction Isolation Level)] 트랜잭션을 ..