728x90 반응형 데이터베이스3 [DB] partitioning, sharding, replication ❓ partitioning 종류 vertical partitioning 수직 파티셔닝 정규화 1NF, 2NF, 3NF, BCNF 를 통해 테이블을 나누는 것도 vertical partitioning 입니다. 어떤 테이블에서 select를 통해 특정 컬럼만 가져오는 쿼리를 만들었을 때, 디스크에서 메모리로 데이터를 가져올 때 where 조건에 맞는 것들 중에 select 한 특정 컬럼만 골라서 가져오는 것이 아니라 일단 해당하는 로우를 모두 가져오게 됩니다. 그럼 이때 어떤 컬럼이 사이즈가 매우 큰 데이터(ex 게시글 본문)를 가지고 있는데 select 한 컬럼이 아니라면 필요없는 데이터를 가져온게 되니 메모리 낭비가 발생합니다. 이럴 때 vertical partitioning 을 하면 효율적입니다. 이런.. 2024. 3. 22. [DB] 인덱스, unique index, multicolumn index, hash index where name = '홍길동' name 이라는 컬럼에 인덱스 없으면 100만개 full scan – 시간복잡도 O(N) 인덱스가 걸려있고 B-tree 기반이라면 O(logN) 일반 인덱스 : 중복 가능 유니크 인덱스 : 중복 불가능 여러개를 한번에 묶어서 인덱스 생성 가능 = multicolumn index 테이블을 생성하면서 만들 수도 있고 테이블 생성 후에 만들 수도 있음 primary key에는 RDBMS가 자동으로 인덱스를 생성해준다. where a = 7 and b = 95; 위의 경우 a에 대해서 인덱스를 생성하면 인덱스내에서 a = 7인 것을 찾고 또 a = 7인 것들을 full scan해서 b = 95 인 것을 찾아야 하기 때문에 비효율적이다. 그래서 a, b를 하나로 묶은 인덱스를 만.. 2024. 3. 19. [DB] 스키마가 뭔데? 스키마는 메타데이터의 집합 입니다. 테이블이 몇개있는지테이블 명이 뭔지테이블 용량이 얼마인지컬럼이 뭐가 있는지컬럼 길이는 몇인지인덱스가 뭔지뷰가 몇개인지함수, 트리거 등등 => DB를 설명하기 위한 데이터, 즉 메타데이터의 집합 = 스키마 스키마는 db의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합입니다. 거두절미하고 실제 DB를 봅시다 create schema myschema;로 생성된 스키마는 데이터를 그룹화하여 네임스페이스같은 역할을 합니다.스키마는 여러개를 생성할 수 있고스키마가 다르면 테이블 명을 똑같이 할 수 있습니다.(물론 헷갈리니 그렇게 하진 않겠지만) 그럼 외부 스키마, 내부 스키마, 개념 스키마는 무엇이냐그냥 "개념적으로 나눈 것" 그 이상도 이하도 아닙니다.실제.. 2024. 2. 14. 이전 1 다음 728x90 반응형