[데이터베이스] Transaction(트랜잭션)이란?
·
공부/데이터베이스
우리가 게임을 할 때면 상대방과 거래를 하는 경우가 생긴다. 내가 100골드를 내고 상대방이 갖고 있는 방패를 구매하려고 한다. 나는 상대에게 100골드를 줬고, 상대도 나에게 방패를 줬다. 이때 게임에 오류가 발생해서 상대의 방패가 증발했다면, 매우 곤란한 상황이 펼쳐진다. 나는 돈을 냈는데 얻은 게 없고 상대도 방패를 줬으니 잘못이 없다. 이런 곤란한 상황을 막기 위해 있는 것이 바로 Transaction(트랜잭션)이다. 트랜잭션은 데이터베이스 혹은 비슷한 시스템에서 업무를 수행하는 작업단위를 말한다. 트랜잭션에는 4가지 특징이 있다. 1️⃣ 원자성(Atomicity) 게임서버에서도 중요하게 나왔던 개념이다. 한 번에 실행되어야 하는 코드는 중간에 멈추거나 삭제되지 않고 처음부터 끝까지 한 번에 실행..
[데이터베이스] 복합인덱스란?
·
공부/데이터베이스
데이터베이스의 검색 속도 향상을 위해서 사용하는 인덱스를 한 번에 여러 컬럼에 거는 것이 복합인덱스이다. 유명한 Northwind Database를 사용해서 복합인덱스의 개념을 알아보자. USE Northwind; -- Order Details를 복사한 테스트 테이블 생성 SELECT * INTO TestOrderDetails FROM [Order Details]; -- OrderID, ProductID 복합인덱스 생성 CREATE INDEX Index_TestOrderDetails ON TestOrderDetails(OrderID, ProductID); 테스트용 복합인덱스를 만들어준다. OrderID와 ProductID를 인덱스로 지정해주었다. -- 1 SELECT * FROM TestOrderDeta..
[데이터베이스] Microsoft SQL 쓰는 순서와 실행 순서
·
공부/데이터베이스
쓰는 순서 SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY 실행 순서 FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY