DB 5

[DB] Window OS에서 MariaDB 데이터를 다른 서버로 이전하는 방법

이글의 목적 : 회사에서 MariaDB를 사용하고 있는데, A서버의 있는 모든 데이터를 B서버로 이전해야 하는 업무를 맡았다.다음에 또 이런 업무를 맡았을때, 매뉴얼처럼 꺼내 보기 위해 기록데이터 백업1. 서비스 에서 Mariadb 실행중인지 확인 → 꺼져있으면 실행2. cmd를 관리자 권한으로 실행하고 Mariadb 접속Mariadb가 설치되어 있는 디렉토리로 이동 C\Program Files\MariaDB 11.3\binmariadb -uroot -p 명령어로 root 계정으로 접속 (password 입력안해도 접속 됨)cmd를 관리자 권한으로 실행하지 않으면 Access denied 됨3. 데이터베이스 백업3-1 백업하려는 데이터베이스 조회show databases;3-2 데이터베이스 백업 명령어 ..

DB 2024.05.23

[DB] DBMS의 I/O & 스캔 방식

Single Block I/O , Multi Block I/O Single Block IO는 한 번에 한 블록씩 요청해서 메모리에 적재하는 방식 인덱스를 이용할 때는 인덱스와 테이블 블록 모두 Single Block 방식 사용 인덱스는 소량 데이터를 읽을 때 사용하므로 Single Block 방식이 더 효율적 Multi Block IO는 한 번에 여러 블록씩 요청해서 메모리에 적재하는 방식 캐시에서 찾지 못한 특정 블록을 읽으려고 할 때, 인접한 블록을 한꺼번에 읽어 캐시에 적재하는 기능 많은 테이블을 읽을 때, 특히 Table Full Scan 할 때 사용 → 프로세스가 대기하는 시간 줄이기 위해 Full scan시 Multi Block I/O 단위를 크게 하면 성능이 좋아짐 아래 명령어를 통해 I/O..

DB 2024.03.13

[DB] SQL 튜닝이 필요한 이유(feat. DBMS I/O 매커니즘)

SQL이 느린 이유 SQL이 느린이유는 디스크 I/O 때문이다. 그 이유를 설명하기 위해서는 학부 시절 운영체제에서 배우는 개념이 필요하다. 프로세스란 ‘실행중인 프로그램’을 의미한다. 디스크에 정적으로 존재하는 프로그램을 실행시키면, 운영체제에 의해 독립된 메모리 공간을 할당받고 프로세스가 된다. 프로세스는 생명주기를 갖는다. 생성 → (준비 → 실행 → 대기) → 종료 생성 이후 종료 전까지 (준비 → 실행 → 대기) 상태를 반복한다. 프로세스도 디스크에서 데이터를 읽기 위해서는 점유하고 있던 CPU를 운영체제에 반환하고, 운영체제가 데이터를 줄 때까지 대기 큐에서 대기한다. 즉, I/O가 많으면 열심히 일해야 할 프로세스들이 Sleep 상태에서 대기를 하게 되고 이는 성능 하락으로 이어진다. 논리적..

DB 2024.03.12

[DB] RDBMS의 데이터 저장 구조

DBMS 저장구조 데이터를 저장하려면 먼저 테이블 스페이스를 생성해야 한다. 테이블 스페이스는 세그먼트를 담는 컨테이너이며, 어러 개의 데이터파일로 구성된다. 세그먼트는 테이블, 인덱스처럼 데이터 저장공간이 필요한 오브젝트이다. 테이블, 인덱스를 생성할 때 데이터를 어떤 테이블 스페이스에 저장할지를 지정한다. 세그멘트는 여러 익스텐트로 구성된다. 파티션 구조가 아니라면 테이블도 하나의 세그먼트이고 인덱스도 하나의 세그먼트이다. 하지만 파티션 구조라면 각 파티션이 하나의 세그먼트가 된다. LOB 컬럼은 그 자체가 하나의 세그먼트를 구성하므로 자신이 속한 테이블과 다른 별도 공간에 값을 저장한다. (LOB이란 : 데이터베이스에 저장되는 다양한 타입의 데이터들 중에 구조화되지 않은 데이터를 처리하기 위한 타입..

DB 2024.03.12

[DB] Index의 개념과 동작원리

인덱스의 개념 인덱스(Index)의 의미는 데이터를 조회할 때, 빠르게 찾아줄 수 있도록 도와주는 도구로 책의 맨 뒷장에 있는 찾아보기 같은 개념이다. 인덱스는 두 가지로 나뉜다. 클러스터형 인덱스 (Clustered Index) PK를 지정하면 자동으로 생성되며, 테이블에 단 하나만 만들 수 있다. PK로 지정한 열을 기준으로 자동으로 정렬된다. 보조 인덱스 (Secondary Index) 고유 키(Unique key)로 지정하면 자동 생성되며 여러 개를 만들 수 있지만 자동정렬은 되지 않는다. 클러스터형 인덱스는 A,B,C 순서대로 정렬되어 있는 영어사전과 같은 개념이다. PK를 기준으로 자동정렬 되므로, 본문이 변경된다. 보조 인덱스는 책 뒤에 ‘찾아보기’와 같은 개념 (본문이 변경되지는 않는다.)..

DB 2024.03.11