2024.07.23(화) 데이터베이스

박현석·2024년 7월 23일

Table Full Scan 과 Index Range Scan

두 기법 모두 데이터베이스를 읽어오기 위한 방법입니다. 
Table full Scan 의 경우 테이블의 모든 행을 순차적으로 읽는 작업입니다. 
테이블에 인덱스를 적용하지 않은 경우나, 
쿼리가 인덱스를 사용하지 못하는경우, 주로 많은 데이터를 불러오때에 사용합니다. 
Index Range Scan은 인덱스를 이용해 특정 범위의 값을 불러오기 위한 기법입니다. 
주로 대량의 테이블에 소량의 데이터를 불러올때에 사용합니다.

트랜잭션이란 무엇인가요? 4 가지 원칙

데이터베이스의 상태를 변화시키기 위한 일련의 작업 단위입니다. 
트랜잭션은 데이터베이스의 일관성을 유지하기 위해 한꺼번에 모두 성공하거나 모두 실패해야 합니다.
4가지 원칙은 ACID인 Atomicity(원자성), Consistency(일관성), lsolation(고립성), Durability(지속성) 으로 이루어져있습니다.
원자성이란 트랜잭션내 모든작업이 완료되거나 수행되지 않아야함이고, 
일관성이란 트랜잭션이 수행되면 전과후가 일관성있는 상태여야하고,
고립성이란 트랜잭션이 병행실행시 다른작업이 참조할수 없어야하고, 
지속성이란 트랜잭션이 수행된 결과가 영구적으로 반영되어야 한다는 것입니다.

트랜잭션의 격리 수준과 각 수준에서 발생할 수 있는 문제
트랜잭션의 격리수준은 4단계로 분리하며 각단계를 격리수준이 낮은순으로 얘기하고 각각의 문제점을 설명하겟습니다.

가장 낮은 단계인 Read Uncommitted의 경우 dirty read문제가 발생할수 있으며 ,커밋되지 않은 상황에서 다른 트랜잭션이 변경 사항을 조회할 수 있는 문제입니다.

Read Committed (커밋된 읽기):
* 문제: Non-repeatable Read (반복 불가능한 읽기)
* 설명: 커밋된 데이터만 읽을 수 있지만, 같은 쿼리를 두 번 실행할 때 데이터가 다를 수 있습니다.
Repeatable Read (반복 가능한 읽기):
* 문제: Phantom Read (팬텀 읽기)
* 설명: 트랜잭션 동안 같은 데이터를 반복해서 읽을 수 있지만, 새로운 데이터가 삽입될 수 있습니다.
Serializable (직렬화 가능):
* 문제: 성능 저하
* 설명: 가장 높은 격리 수준으로, 모든 트랜잭션이 직렬화되어 실행됩니다. 성능이 저하될 수 있습니다.

Mybatis 와 ORM 의 장단점

ORM의 장점은 객체와 데이터베이스 간의 매핑을 자동으로 해주어 간결한 코드 작성을 할 수 있고, 유지보수와 독립성이 증가합니다.
단점으로는 쿼리 성능이 떨어질 수 있으며 복잡한 쿼리 기능이 어려울수 있는점.
Mybatis의 장점은 직접SQL을 작성하여 복잡한 쿼리를 직접 SQL로 작성하여 관리할 수 있고, 스키마 변경에 유연성이 높다.
하지만 복잡하고 코드량이 많아 직접해야 하는 만큼 생산성이 떨어집니다.

DB 클러스터링과 리플리케이션의 차이

DB클러스터는 수평적 구조로 여러 데이터베이스 서버를 하나의 시스템처럼 운영하고,리플리케이션은 수직적 구조로 데이터베이스를 복제하여
다수의 서버에서 동시에 처리하게 만드는 기술입니다.

DB 이중화 방식

마스터 슬레이브 리플리케이션이란 마스터 데이터베이스 에서 슬레이드 데이터베이스로 데이터를 복제하는 방식입니다. 
복제한 슬레이드 데이터베이스에서는 읽기 작업만 가능하고, 쓰기작업은 마스터 데이터베이스에서만 가능합니다.
미러링 이란 두개의 데이터베이스를 동기화 하여 하나의 DB가 장애가 발생할 경우 다른 데이터 베이스로 전환되는 방식입니다.
클러스터링이란 여러개의 데이터베이스 서버를 묶어 하나의 논리적인 데이터베이스로 만드는 방식입니다.

MySQL, Oracle, Microsoft SQL Server 의 장단점

MySQL:
* 장점:
    * 오픈 소스이므로 비용이 적음.
    * 높은 성능과 확장성.
    * 대규모 커뮤니티 지원.
* 단점:
    * 일부 고급 기능 부족.
    * 복잡한 트랜잭션 관리가 어려울 수 있음.
Oracle:
* 장점:
    * 강력한 성능과 확장성.
    * 고급 보안 기능과 관리 도구.
    * 풍부한 기능과 높은 안정성.
* 단점:
    * 높은 라이선스 비용.
    * 복잡한 설치 및 관리.
Microsoft SQL Server:
* 장점:
    * 강력한 통합 개발 환경 (SSMS).
profile
너에게만광대

0개의 댓글