Clustered Index vs Non-Clustered Index — 구조와 차이 정리
데이터베이스 인덱스는 크게 Clustered Index와 Non-Clustered Index로 나뉜다. 두 인덱스는 “데이터를 어떻게 저장하고 접근하는가”에서 구조적인 차이가 있...
Hee Blog
MySQL, MariaDB 등 RDB 설계, 쿼리 최적화, 마이그레이션 등 DB 관련 정리와 메모를 담은 카테고리입니다.
데이터베이스 인덱스는 크게 Clustered Index와 Non-Clustered Index로 나뉜다. 두 인덱스는 “데이터를 어떻게 저장하고 접근하는가”에서 구조적인 차이가 있...
MySQL에서 사용하는 대부분의 인덱스는 B-Tree 구조로 이루어져 있다. B-Tree는 대용량 데이터에서 빠르게 값을 찾기 위해 설계된 트리 형태의 자료 구조다. 테이블...
MySQL에서 가장 많이 사용하는 페이징 방식은 LIMIT OFFSET 구조다. 하지만 데이터가 많아질수록 이 방식은 점점 느려지는 문제가 있다. 특히 페이지 번호가 커질수...
데이터가 수천만 건을 넘어가면 단일 테이블 구조는 점점 한계에 부딪힌다. 인덱스 크기가 커지고, 백업·복구 시간이 길어지며, 특정 쿼리의 응답 속도가 급격히 저하된다. 이 ...
트랜잭션(Transaction)은 하나의 논리적 작업 단위를 보장하기 위한 DB 기능이다. 여러 개의 SQL이 하나의 작업처럼 처리되며, 전부 성공하거나 전부 실패해야 한다. ...
MySQL에서 “키(Key)”는 단순히 검색 속도를 높이기 위한 인덱스 개념을 넘는다. 데이터의 무결성을 보장하고, 테이블 간 관계를 정의하며, 중복을 방지하는 핵심 제약 조건이...
ERD(Entity-Relationship Diagram)는 데이터베이스에 들어갈 엔터티(테이블 후보)와 그 관계를 시각적으로 표현한 다이어그램이다. 좋은 ERD와 데이터베이스 설...
웹 서비스·백엔드 개발에서 자주 쓰이는 데이터베이스는 MySQL, MariaDB, PostgreSQL, SQLite 같은 관계형 DB와 MongoDB, Redis 같은 비관계형 D...
MySQL에서 테이블끼리 연결할 때 쓰는 JOIN 종류, 언제 어떤 것을 쓰면 좋은지, JOIN과 UNION의 차이를 정리한 내용이다. 쿼리 작성 시 헷갈리기 쉬운 부분만 골라 기...
DB를 다룰 때 자주 쓰는 CRUD — Create(생성), Read(조회), Update(수정), Delete(삭제)의 기본 문법을 정리한 내용이다. MySQL 기준 예시를 포함...
도입 덤프 파일이 생성됐다는 사실과 데이터베이스 이전이 성공했다는 사실은 다르다. 테이블은 복원됐지만 이벤트나 루틴이 빠질 수 있고, 문자셋 또는 AUTO_INCREMENT가...
도입 ALTER TABLE이 오래 끝나지 않으면 테이블이 커서 느린 것으로 생각하기 쉽다. 그러나 실행 시간은 0초인데 상태가 Waiting for table metadata...