데이터베이스(3)
-
Index 인덱스
인덱스란? 테이블의 검색 속도를 향상시키는 자료구조이다. 쉽게 생각해서 책의 색인과 같다 처음부터 완전 탐색하면 힘든데, abc순으로 정렬하면 빠르게 찾을 수 있지 않은가? ldex를 통해 조회 속도를 올릴 수 있으나, insert, delete,update 속도는 느려진다. 그리고 인덱스를 따로 관리하기 위한 추가 작업이 필요하고, 잘못 사용할 결우 오히려 성능이 악화된다. 인덱스는 그럼 언제 사용하는 것이 좋을까? - 규모가 큰 테이블 - insert, update, delete가 자주 발생하지 않는 컬럼 - join, where, order by가 자주 사용되는 컬럼 - 데이터 중복도가 낮은 컬럼 그럼 Index는 어떻게 구현하는가? 대표적인 방식이 헤시 테이블과 B+ Tree가 있다. 해시 테이블..
2023.11.26 -
DB isolation level (격리수준)
격리수준이란(isolation level) 트랜젝션 간 고립 수준을 말한다. 즉, 다른 트랜젝션이 변경한 데이터에 대한 접근 강도를 의미한다. * dirty read : 다른 트렌젝션에서 아직 commit 되지 않은 데이터를 읽는 것 * non-repeatable read : 다른 트랙젝션에서 데이터 수정/삭제 시 커밋한 데이터를 읽을 수 있는 것. 한 트랜젝션에서 같은 쿼리로 2번 이상 조회했을 때 그 결과가 상이한 상황 * phantom read : 데이터 삽입 시 발생, 한 트랜젝션에서 같은 쿼리를 2번 이상 조회했을 때 없던 결과를 조회하는 상황, 다른 트랜젝션이 commit한 데이터가 있더라도, 자신의 트랜젝션에서 읽었던 내용만 사용 격리수준을 좀 더 자세히 알아보자 LEVEL 0 - Read ..
2023.11.25 -
모듈 6 : 데이터베이스 서비스
# RDS - 클라우드에서 관계형 DB를 설치, 운영 및 크기 조정을 할 수 있게 해주는 웹서비스 # RDS 다중 AZ 배포 - 다른 가용 영역의 대기 DB 인스턴스에 데이터 복제 - 읽기 전용 시나리오에서는 사용되지 않음 - 인스턴스 가용성 및 내구성 높여줌. - 장애 발생 시 대기 DB 인스턴스에서 로드를 처리 # RDS-etc - 읽기 전용 복제, 저장 데이터 암호화 제공 # Aurora - MySQL 과 PostgreSql 호환 - 표준 MySql 보다 5배 빠름 - 6개의 데이터 복사본은 3개의 가용 영역에 복제, 지속적으로 S3에 백업 # DynamoDB - 완전 관리형 NoSql 데이터베이스 서비스 - 비용 효율적 - 이벤트 중심 프로그래밍과 세분화된 엑세스 제어 지원 - NoSQL 에서는 ..
2023.08.27