반응형 데이터베이스8 [DataBase] 인덱스란? 인덱스란 테이블의 특정 컬럼을 빠르게 조회할 수 있도록 만든 자료구조이다. 보통 B-Tree(Balanced Tree) 구조를 사용하여 빠른 탐색이 가능하다. 데이터를 직접 읽는 게 아니라 색인을 먼저 보고 해당 데이터 위치를 찾아가게 된다. 예제blog 테이블에서 blog_category = 1인 데이터를 찾는 쿼리SELECT * FROM blog WHERE blog_category = 1; 인덱스가 없으면데이터 전체를 처음부터 끝까지 풀 스캔(Full Table Scan)100만 개 중에서 10개만 필요해도 전부 읽어야 하기 때문에 느리다. 인덱스를 추가하면?인덱스 = 책의 목차 같은 역할CREATE INDEX idx_blog_category ON blog (blog_category);이제 blog_.. 2025. 3. 26. [DB] MVCC(다중 버전 동시성 제어) 동시정 제어(Concurrency Control)동시성 제어란 DBMS가 다수의 사용자 사이에서 동시에 작용하는 다중 트랜잭션의 상호간섭 작용에서 데이터베이스를 보호하는 것을 의미한다. 일반적으로 동시성을 허용하면 일관성이 낮아지게 된다. 다수 사용자의 동시 접속을 위해 DBMS는 동시성 제어를 할 수 있도록 Lock 기능과 SET TRANSACTION 명령어를 이용해 트랜잭션의 격리성 수준을 조정할 수 있는 기능도 제공한다. 이렇게 동시성을 제어하는 방법에는 낙관적 동시성 제어와 비관적 동시성 제어가 있다. 낙관적 동시성 제어(Optimistic Concurrency Control)사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정데이터를 읽는 시점에 Lock을 걸지 않는 대신 수정 시점에 .. 2025. 3. 26. [SQL] SQL 실행 순서에 대해서 SQL 쿼리를 작성할 때 아무 생각 없이 짜다가 문득 실행 순서에 대해 어떻게 되는지 궁금해졌다. SQL 쿼리가 실행될 때는 작성한 순서대로가 아니라 내부적으로 정해진 순서에 따라 처리된다.가장 일반적인 실행 순서는 아래와 같다 SELECT ... FROM ... JOIN ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... LIMIT ...; 실제 실행 순서FROM테이블을 선택하고 원시 데이터를 가져온다.JOIN이 있다면 JOIN 조건에 따라 테이블 결합WHERE조건에 따라 행(Row) 필터링GROUP BY 전에 실행되므로 집계(Aggregation)에 영향을 줌GROUP BY같은 값끼리 그룹화집계 함수 (SUM,AVG,COUNT 등)가 사용될 때만 필요Having.. 2025. 2. 18. [DataBase] 관계형 데이터 베이스 관계형 데이터 베이스 (Relational Database) 관계형 데이터 베이스는 데이터를 테이블 형식으로 관리하는 데이터베이스 시스템이다. 각각의 테이블은 행과 열로 구성되며 행은 개별 데이터를, 열은 데이터의 속성을 나타낸다. 명칭을 정리하자면 - 테이블 (Table) : 데이터를 행과 열로 구성하여 저장하는 구조. 예를 들어 사용자의 정보를 저장하는 User 테이블이 있을 수 있음 - 행 (Row) : 테이블 내의 각 레코드(Record)를 나타낸다. 예를 들어 사용자 정보가 한 행이 된다. - 열 (Column) : 테이블 내의 데이터 속성을 나타낸다. 예를 들어 User 테이블에서 고객의 이름을 저장하는 name 열과 고객의 전화번호를 저장하는 phone 열이 있을 수 있다. - 기본 키 :.. 2024. 8. 6. 이전 1 2 다음 반응형