[Database] 인덱스(index)에 대하여.
2023. 12. 23. 02:28
CS/데이터베이스
0. 들어가며 데이터베이스의 쿼리 성능 향상을 위해 빼놓을 수 없는 것이 바로 인덱스입니다. 무지성으로 인덱스를 where 절에 있는 컬럼에 맞춰걸지 않지 않기 위해 공부한 내용을 정리해보려 합니다. 인덱스는 어떻게 동작하고, 인덱스를 걸었더니 왜 성능이 빨라진거지에 대한 물음을 얻는 것이 목표이며, 본 글의 내용은 Real MySQL 8.0을 주로 참고한 내용입니다. 따라서 MySQL과 InnoDB 스토리지 엔진을 기반으로 된 설명임을 알립니다. 이 글을 읽기 전 알고 있어야할 배경지식은 다음과 같습니다. B-Tree가 무엇인지 DB에 대한 간단한 지식 1. 데이터베이스의 디스크 읽기 HDD는 SSD에 비해 500배 느리고, SSD는 DRAM에 비해 1,000배 가량 느립니다. 또 DRAM은 CPU에 ..
[Database] Transaction에 대하여 1편 - 트랜잭션과 ACID
2023. 3. 24. 02:36
CS/데이터베이스
0. 들어가며 🏃🏻♂️ 이번 글은 데이터베이스의 트랜잭션 개념에 대해 가볍게 공부해보려다가 결국 데이터베이스 전공책을 펴게된 김에 정리하게 되었습니다. 본 글은 DATABASE SYSTEM CONCEPTS 7th edition의 Chapter 17. Transaction 내용을 나름대로 번역 + 요약 + 변형한 글입니다. 1. 트랜잭션와 ACID 😎 데이터베이스에서 실행되는 여러 연산은 사용자 입장에서는 하나의 단위로 보이는 경우가 있습니다. 대표적으로 송금이 그 예시이죠. 사실 송금이라는 행위는 한 계좌를 읽고, 돈을 빼고, 다른 계좌를 읽고, 돈을 넣고 등의 행위를 해야합니다. 허나 사용자 입장에서는 논리적으로 하나의 단위인 행위이죠. 이처럼 하나의 논리적 작업 단위를 이루는 연산의 집합을 트랜잭..