'SQL' 카테고리의 글 목록
jaemeon's note
SQL
SQL_24) 동시라는 것은 SQL에 좋지 않다.
2026.01.30
Topic (오늘의 주제)데이터베이스 동시성 이슈(Concurrency Issues)는 여러 트랜잭션이 동시에 같은 데이터에 접근할 때 발생하는 문제입니다. Lost Update, Dirty Read, Non-Repeatable Read, Phantom Read 등의 문제가 발생할 수 있으며, 이를 해결하기 위해 락(Lock) 메커니즘과 격리 수준(Isolation Level)을 사용합니다. 동시성과 데이터 일관성 사이의 트레이드오프를 이해하고 적절한 격리 수준을 선택하는 것이 중요합니다.Why (왜 사용하는가? 왜 중요한가?)현대의 데이터베이스는 여러 사용자가 동시에 접근하는 환경입니다. 여러 트랜잭션이 동시에 같은 데이터를 읽거나 수정할 때, 적절한 제어가 없으면 데이터의 일관성이 깨지고 잘못된 결과..
SQL
SQL_23) index 넌 못지 나간다.
2026.01.28
Topic (오늘의 주제)트랜잭션(Transaction)과 인덱스(Index)는 데이터베이스에서 서로 밀접한 관계를 가집니다. 트랜잭션이 데이터를 변경할 때 인덱스도 함께 업데이트되어야 하며, 인덱스의 존재는 트랜잭션의 성능과 일관성에 직접적인 영향을 미칩니다. 트랜잭션의 ACID 속성을 보장하면서 인덱스를 효율적으로 관리하는 것이 데이터베이스 성능 최적화의 핵심입니다.Why (왜 사용하는가? 왜 중요한가?)트랜잭션이 데이터를 INSERT, UPDATE, DELETE할 때마다 해당 컬럼에 인덱스가 있다면 인덱스도 함께 업데이트되어야 합니다. 이 과정에서 인덱스의 정렬 상태를 유지하기 위한 추가 작업이 발생하며, 트랜잭션의 성능과 일관성에 영향을 줍니다.인덱스는 트랜잭션의 격리성(Isolation)과 밀접..
SQL
SQL_22) 건초더미에서 바늘 찾기 싫다면 인덱스를 쓰세요
2026.01.28
인덱스(Index)인덱스(Index) 는 데이터 검색 속도를 높이기 위해 별도로 관리하는 자료구조입니다. 일반적으로 B-Tree 구조를 사용하며, 컬럼의 값과 해당 레코드가 저장된 주소를 키와 값의 쌍으로 저장합니다. 인덱스가 있으면 테이블 전체를 읽는 'Full Table Scan' 대신 특정 범위만 탐색하는 'Index Scan'이 가능해져 SELECT 성능이 비약적으로 향상됩니다.Why (왜 사용하는가? 왜 중요한가?)인덱스 없이는 대용량 테이블에서 데이터를 검색할 때 전체 테이블을 스캔해야 하므로 성능이 크게 저하됩니다. 1억 개의 데이터가 섞여 있을 때 특정 값을 찾는 것은 '모래사장에서 바늘 찾기'와 같지만, 인덱스를 통해 미리 정렬해두면 업다운 게임처럼 빠르게 찾을 수 있습니다.인덱스는 항상..
SQL
SQL_21) 그럼 여기가 inner이지 outer이냐 ?
2026.01.23
inner join & outer joinJoin(조인)은 두 개 이상의 테이블을 연결하여 데이터를 조회하는 SQL 문법이다. Inner Join은 두 테이블의 교집합만 반환하고, Outer Join은 한쪽 테이블의 모든 데이터와 다른 쪽 테이블의 매칭되는 데이터를 반환한다.Why (왜 사용하는가? 왜 중요한가?)Join 없이 여러 테이블의 데이터를 조회하려면 각 테이블을 개별적으로 조회한 후 애플리케이션 레벨에서 데이터를 결합해야 하며, 이는 여러 번의 쿼리 실행과 네트워크 비용을 발생시킵니다. 또한 데이터 정합성을 보장하기 어렵고, 대량의 데이터를 메모리에서 처리해야 하는 부담이 있습니다.Join을 사용하면 데이터베이스 레벨에서 한 번의 쿼리로 여러 테이블의 데이터를 효율적으로 조회할 수 있습니다. ..
SQL
SQL_20) 트랜잭션, 님아 그 COMMIT을 누르지마오
2025.12.19
Topic (오늘의 주제)트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적 작업 단위를 구성하는 하나 이상의 데이터베이스 작업들의 집합이다. 트랜잭션은 All or Nothing 원칙에 따라 모든 작업이 성공하거나 모두 실패해야 하며, ACID 속성을 통해 데이터 무결성을 보장한다.트랜잭션 왜 중요할까? 자동으로 하면 문제가 생길까?데이터베이스에서 여러 작업을 수행할 때, 일부 작업만 성공하고 일부가 실패하면 데이터의 일관성이 깨질 수 있습니다. 예를 들어, 치킨 주문 시스템에서 주문을 생성하고 결제를 처리하는 과정에서 주문은 생성되었지만 결제가 실패하면, 주문은 존재하지만 결제되지 않은 상태가 되어 데이터 불일치가 발생합니다.트랜잭션을 통해 여러 작업을 하나의 논리적 단위로 묶어서, 모든..