본문 바로가기

전체 글

(93)
[SQLD/데이터 모델과 성능]2-4. 대량 데이터에 따른 성능 2. 데이터 모델과 성능 2-4. 대량 데이터에 따른 성능 (1) 성능 저하 원인 A 한 테이블에 데이터 대량 집중 : 테이블 너무 커짐 ⇒ 효율성 ↓ 디스크 I/O ↑ A 한 테이블에 여러 컬럼 존재 : 데스크 점유량 ↑ ⇒ 디스크 읽기 I/O ↑ B 대량 데이터 처리되는 테이블 : SQL문에서 데이터 처리를 위한 I/O ↑ , 인덱스 구성 B 대량 데이터가 한 테이블에 존재 : 인덱스 크기 ↑ 로 인한 성능 저하 컬럼이 많아질 경우 : 로우체이닝, 로우마이그레이션 발생 (2) 해결 방안 A 한 테이블에 많은 컬럼 ⇒ 수직분할 수직분할 : 컬럼 단위로 분할하여 I/O를 줄임 B 대량 데이터 저장 문제 ⇒ 파티셔닝 or PK에 의한 테이블을 분할 수평분할 : 로우 단위로 분할하여 I/O를 줄임 (3) 로..
[SQLD/데이터 모델과 성능]2-3. 반정규화와 성능 2. 데이터 모델과 성능 2-3. 반정규화와 성능 (1) 반정규화 중복 생성 정규화된 엔터티,속성,관계에 대해 성능향상, 단순화를 수행하기 위해 중복, 통합, 분해 등을 수행 무결성이 깨질 수도 있지만 → Disk I/O를 감소시키고, 긴 조인 쿼리문으로 인한 성능 저하 해결 → 중복성의 원리를 활용해 데이터 조회 시 성능 향상 정규화도 일부 조회 성능을 향상시키지만 → 일부 여러 개의 조인이 필요할 때, 조회에 대한 처리 성능이 확실히 중요하다고 판단되면 부분적으로 반정규화 → 정규화의 종속 관계는 위반하지 않으면서 데이터의 중복성을 증가시켜 조회 성능을 향상시킴 (2) 반정규화 적용 방법 반정규화 대상 조사 : 범위 처리 빈도수, 대량 범위처리, 통계성 프로세스, 테이블 조인 수 다른 방법 유도할 수..
[SQLD/데이터 모델과 성능]2-2. 정규화와 성능 2. 데이터 모델과 성능 2-1. 정규화와 성능 (1) 정규화 데이터 모델을 좀 더 구조화하고 개선시키는 절차 중복 제거, 무결성 성능은 “ 조회 ” // “ 삽입, 수정, 삭제 ”의 두 가지 측면 둘 다 고려해야함 정규화가 잘 되어있으면, “삽입,수정,삭제” 성능 향상 (조회 성능 저하X) 반정규화가 잘되어 있으면, “조회” 성능 향상 (조인 필요X) 결정자에 의해 함수적 종속성이 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상 제거 중복속성 제거, 결정자에 의한 동일한 일반속성을 하나의 테이블로 합체 한 테이블의 데이터 용량을 최소화 (2) 함수적 종속성에 근거한 정규화 수행 필요 함수의 종속성(Dependency)는 데이터들이 어떤 기준값에 의해 종속되는 현상을 지칭 결정자 ex) 주민등록번호 ..
[백준/03-08] 11022 A+B - 8 NO.11022 풀이코드 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int i=1; i
[백준/03-07] 11021 A+B - 7 NO.11021 풀이코드 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int i=1; i
[백준/03-06] 15552 빠른 A+B NO.15552 풀이코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.IOException; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter..
[백준/03-05] 25314 코딩은 체육과목 입니다 NO.25314 풀이코드 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); if(n%4==0){ for(int i=0; i
[백준/03-04] 25304 영수증 NO.25304 풀이코드 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int n = sc.nextInt(); int total = 0; for(int i=0; i