[ SQL 레벨업 ] 10장. 인덱스 사용
·
DATABASE/📖 SQL 레벨업
1. 인덱스와 B-treeRDB에서 사용하는 인덱스 3가지B-tree 인덱스비트맵 인덱스해시 인덱스1.1 만능형 : B-tree데이터를 트리 구조로 저장하는 형태의 인덱스이다.가장 많이 사용되며, 데이터베이스에서 '인덱스'라 말하면 대부분 B-tree를 지칭하는 것이다.실제 수식을 붙이지 않 채 CREATE INDEX 구문을 실행하면 모든 DBMS에서 암묵적으로 B-tree 인덱스가 만들어진다.더보기트리 구조계층적으로 데이터를 저장하고 관리하는 비선형 데이터 구조이다.  1️⃣ 각 계층루트 노드중간 노드리프 노드 2️⃣ 용어- 노드(Node) : 데이터를 저장하는 각 지점- 루트(Root) : 트리의 최상위 노드- 부모 노드 : 다른 노드를 직접 연결한 노드- 자식 노드 : 다른 노드에 연결된 노드- ..
[ SQL 레벨업 ] 7장. 서브쿼리
·
DATABASE/📖 SQL 레벨업
1. 서브쿼리란?1.1 테이블 vs. 서브쿼리 vs. 뷰종류설명테이블영속적인 데이터를 저장서브쿼리비영속적인 생존 기간(scope)이 SQL 구문 실행 중으로 한정뷰영속적이지만 데이터는 저장하지 않음따라서 접근할 때마다 SELECT 구문이 실행됨 1. 기능적인 관점에서 보면 테이블과 서브쿼리는 전혀 차이가 없다. 2. 반면 비기능적인(특히 성능적인) 관점에서 보면 큰 차이가 있다.3. 서브쿼리(또는 뷰)는 테이블에 비해 성능이 안 좋은 경향이 있다. 이 세 개의 문장을 잘 기억해두고 세세한 부분을 살펴보자. 2. 서브쿼리가 일으키는 폐해2.1 서브쿼리의 문제점서브쿼리는 실체적인 데이터를 저장하고 있지 않기 때문에  1. 연산 비용 추가 : 접근할 때마다 SELECT 구문 실행 -> 실행 비용 발생2. 데이..
[ SQL 레벨업 ] 4장. 집약과 자르기
·
DATABASE/📖 SQL 레벨업
부제 : 집합의 세계1. 여러 개의 레코드를 한 개의 레코드로 집약iddata_typedata_1data_2data_3data_4data_5data_6JimA100103434654 JimB4521677790157JimC 36871355324457KenA785724457 1KenB1231217834675235KenC45 234668733BethA75019025356 BethB4350183 4325BethC96128 0012 * 해당 레코드에서 사용하고자 하는 데이터에 하이라이트 효과를 적용했다. 위의 테이블은 한 사람에 관련된 정보가 여러 레코드에 분산되어 있어 정보를 찾기 위해서는 여러 레코드에 접근해야 한다.불필요한 과정이 생기기 때문에 이를 보완하기 위해 이 테이블을 아래와 같은 레이아웃의 테이블로 ..