반응형 CS/DataBase15 격리수준이란 데이터베이스 트랜잭션 격리 수준 (Transaction Isolation Levels)데이터베이스 트랜잭션의 격리 수준은 여러 개의 트랜잭션이 동시에 실행될 때, 한 트랜잭션이 다른 트랜잭션의 변경 사항을 어느 정도까지 '볼 수 있는지'를 정의하는 기준입니다. 이는 데이터의 일관성과 무결성을 보장하면서도, 시스템의 동시성(처리량)을 최적화하기 위한 중요한 균형점입니다.SQL 표준은 4가지 주요 격리 수준을 정의하고 있으며, 각 격리 수준은 특정 동시성 문제(Anomaly)를 방지하는 정도가 다릅니다.트랜잭션의 4가지 속성 (ACID) 복습격리 수준을 이해하기 전에, 트랜잭션의 ACID 속성 중 'Isolation'이 무엇인지 다시 상기하는 것이 좋습니다. A - Atomicity (원자성): 트랜잭션 내.. 2026. 3. 12. Postgresql 1. 강력한 객체-관계형 기능과 확장성 (Extensibility)PostgreSQL은 단순한 관계형 모델을 넘어선 **객체-관계형 데이터베이스(ORDBMS)**의 특성을 가집니다. 이는 데이터베이스의 핵심 기능을 사용자가 직접 확장하고 정의할 수 있는 유연성을 제공합니다.사용자 정의 타입(User-Defined Types):설명: 데이터베이스가 기본으로 제공하는 INTEGER, VARCHAR, TIMESTAMP 등의 타입 외에, 개발자가 직접 새로운 데이터 타입을 정의하여 사용할 수 있습니다. 이 타입에는 해당 타입에 맞는 연산자(+, 등), 함수, 인덱스 등을 함께 정의할 수 있습니다.장점:데이터의 의미 정확성: 특정 도메인의 데이터를 DB 스키마 수준에서 더 정확하게 표현할 수 있습니다. 예를 들어.. 2026. 3. 12. redo log(mysql 8.0) MySQL 8.0 에서 Redo log는 데이터베이스의 성능과 안정성을 모두 잡기 윈한 핵심 장치로 사용된다. 모든 데이터 변경은 실제 데이터 파일보다 Redo log에 먼저 기록되어, 시스템 장애 시에도 데이터를 안전하게 복구하고 평상시에는 빠른 쓰기 성능을 보장한다. 안정성 (Crash Safety) : 커밋(Commit)된 트랜잭션의 변경 사항은 Redo log에 먼저 기록이 보장된다. 따라서 서버 전원이 갑자기 꺼지는 등의 장애가 발생해도, 재시작 시 Redo Log를 보고 미처 데이터 파일에 반영되지 못한 내용을 다시 실행하여 데이터를 복구할 수 있다.성능 (Performance) : 디스크의 여러 곳에 흩어져 있는 데이터 파일에 데이터를 쓰는 작업(Random I/O)은 느리다. Redo Lo.. 2025. 9. 16. [DB] Prepared Statement란? Prepared Statement는 데이터베이스 쿼리를 실행 할 때 쿼리를 미리 준비하고 실행할 때 필요한 값만 바인딩하여 사용하는 방식이다. 일반적으로 SQL 쿼리를 실행할 때와 달리, Prepared Statement는 SQL 구문과 데이터 값을 분리하여 처리한다. 이러한 방식은 SQL Injection 공격을 예방하고, 반복적인 쿼리 실행 성능을 향상시키는 등 여러 가지 장점을 제공한다. 일반 Statement의 동작 방식일반적으로 SQL을 실행할 때 다음과 같은 단계를 거친다.SQL 문자열 생성--예시SELECT * FROM users WHERE name = 'Alice'; 2. 파싱 (Parsing) : SQL 문법을 검사하고, 쿼리 구조를 분석한다. 3. 컴파일(Complie.. 2025. 6. 10. 이전 1 2 3 4 다음 반응형