본문 바로가기

분류 전체보기124

DB Lock 락(Lock) 이란?락은 데이터베이스나 시스템에서 동시성 문제( 일명 '따닥 현상' )를 해결하기 위해 사용되는 동기화 메커니즘이다.여러 트랜잭션이 동시에 데이터를 처리할 때 발생할 수 있는 데이터 충돌을 방지하기 위해 락을 사용한다.  1. 동시성 제어 방식: 비관적 락(Pessimistic Lock) / 낙관적 락(Optimistic Lock)  비관적 락 ( Pessimistic Lock ) 비관적 락은 데이터가 충돌하거나 문제 발생 가능성이 높다고 가정합니다.따라서 데이터에 접근할 때 미리 락을 걸어, 다른 트랜잭션이 해당 데이터에 접근하거나 수정하지 못하도록 제한합니다.이 락은 현재 작업이 완료될 때까지 유지되며, 다른 트랜잭션은 락이 해제될 때까지 대기하게 되어 동시성 문제를 방지합니다.  작.. 2024. 12. 18.
트랜잭션 (Transaction) 트랜잭션의 정의트랜잭션은 데이터베이스의 상태를 변환시키기위한 논리적 작업 단위이다.이는 여러 SQL문들을 단일 작업으로 묶어서 논리적으로 나눌 수 없는 일관된 작업으로 처리되도록 만든 개념이다.  A.C.I.D 속성1. Atomicity (원자성) ● 트랜잭션 연산은 전부 반영되거나 전부 반영되지 않아야 한다. ( ALL or NOT ) ● 예시로 은행에서 계좌 이체 시 A 계좌에서 B 계좌로 입금한다면 A 계좌에서 인출되는 작업도 성공해야하고 B 계좌로 입금되는 작업도 성공해야한다. 2. Consistency (일관성) ● 트랜잭션이 실행되기 전과 후에 데이터베이스가 일관된 상태를 유지 ● 데이터 무결성 조건이 충족되도록 보장한다. 3. Isolation (고립성) ● 여러 트랜잭션이 동시에 실행되더라.. 2024. 12. 8.
RDB 인덱스 개념 정리 인덱스 (Index)데이터베이스에서 검색 성능을 향상시키기 위해 사용하는 데이터 구조입니다.다양한 쿼리 성능을 최적화하지만, 사용 시 장단점을 고려해야 합니다.인덱스의 장점검색 성능 향상 Full Table Scan을 피할 수 있어 검색 속도가 빨라집니다. 대규모 데이터베이스에서 WHERE 조건이 포함된 쿼리의 효율을 높입니다.정렬 성능 향상 인덱스가 있는 열에 대해 ORDER BY, GROUP BY 사용 시 추가 작업 없이 정렬된 결과를 가져옵니다. 인덱스 열은 이미 정렬된 상태로 데이터를 그룹화하여 추가 연산을 줄입니다.중복 방지 UNIQUE 인덱스를 통해 특정 열의 데이터 중복을 방지할 수 있습니다.조인 성능 향상 인덱스가 있는 열을 기준으로 테이블 간 JOIN 쿼리를 빠르게 처리합니다.인덱스의 단.. 2024. 12. 2.
SQL vs NoSQL SQL  vs NoSQL  데이터베이스 비교SQL (Structured Query Language)NoSQL (Not Only SQL)관계형 데이터베이스비관계형 데이터베이스고정 스키마유연한 스키마ACID 트랜젝션 지원BASE 모델 (Eventually Consistent)테이블 형태로 데이터 저장다양한 데이터 모델(문서, key-value 등등)복잡한 쿼리 및 조인 지원제한된 쿼리 기능, 간단한 조회에 최적화데이터 일관성과 무결성 보장데이터 일관성은 보장하지 않음수직 확장( 관계를 중시 하므로 한 대의 서버 성능을 높임 )수평 확장 (데이터 분산을 중시 하므로 여러 대의 서버를 추가)  NoSQL을 사용해본 경험으로 느낀 점은 유연성이 엄청난 장점이라는 것입니다. 스키마가 고정되지 않고 다양한 형태로 데.. 2024. 11. 15.