[DBMS] MySQL(6) - Replication

정의하나의 MySQL 서버(Master or Source)에서 발생한 데이터 변경사항을 하나 이상의 다른 MySQL 서버(Slave or Replica)로 복사하여 동기화하는 프로세스Master 서버는 모든 쓰기 작업 (INSERT, UPDATE, DELETE 등)을 처리하고 Slave 서버는 Master로부터 변경된 데이터를 받아와 자신의 데이터베이스에 적용함으로써 Master와 동일한 데이터 상태를 유지주요 이점고 가용성(High Availabliity)Master 서버에 장애가 발생하더라도 Slave 서버 중 하나를 새로운 Master로 승격시켜 서비스 중단을 최소화 할 수 있음확장성 (Scalablity)읽기 부하 분산: Master 서버는 쓰기 작업을 전담하고 Slave 서버들은 읽기 작업을 분..

MySQL 2025.09.12 0

[DBMS] MySQL(5) - 백업 및 복구

백업의 중요성데이터는 비지니스의 핵심 자산이므로, 데이터 손실은 심각한 재정적, 운영적 피해로 이어질 수 있음. 따라서 체계적인 백업 및 복구 전략을 수립하는 것은 데이터베이스 관리의 가장 중요한 부분 중 하나데이터 손실은 다양한 원인으로 발생할 수 있음하드웨어 장애 : 디스크 손상, 서버 고장 등소프트웨어 버그 : 애플리케이션 또는 데이터베이스 소프트웨어의 오류휴먼 에러 : 실수로 인한 데이터 삭제 또는 변경, 잘못된 SQL tlfgod보안 위협 : 해킹, 랜섬웨어 등자연 재해따라서 데이터를 주기적으로 백업하고 백업된 데이터를 사용하여 데이터 베이스를 정상 상태로 복구하는 것이 필수적임백업논리적 백업 vs 물리적 백업논리적 백업데이터베이스 객체(테이블 구조, 데이터)를 SQL 구문(INSERT 문 등)..

MySQL 2025.09.12 0

[DBMS] MySQL(4) - 사용자 및 권한관리

사용자 계정의 필요성MySQL을 포함한 모든 데이터베이스 시스템은 여러 사용자가 동시에 접근할 수 있도록 설계되어 있음각 사용자에게 고유한 계정을 할당하고, 그 계정에 필요한 최소한의 권한만을 부여함으로써 다음 목표 달성보안 강화: 인가되지 않은 접근이나 악의적인 데이터 조작으로부터 데이터베이스를 보호데이터 무결성 유지 : 의도치않은 데이터 손상이나 삭제 방지책임 추적성 : 누가 어떤 작업을 수행했는지 명확하게 기록하고 추적할 수 있게 함운영 효율성 : 각 역할에 맞는 권한을 부여하여 개발자, 운영자, 애플리케이션 등 다양한 주체가 효울적으로 작업할 수 있도록 함사용자 계정 생성MySQL에서 사용자 계정은 CREATE USER 구문을 사용하여 생성사용자 계정은 ‘사용자 이름’@’호스트’형태로 정의됨호스트..

MySQL 2025.09.12 0

[DBMS] MySQL(3) - 인덱스 활용 및 튜닝

인덱스데이터베이스 성능 및 관리 에서 다룬 인덱스, 그 중에서도 B-Tree 인덱스가 MySQL에서 가장 흔하게 사용된다. WHERE 절이나 ORDER BY 절에서 인덱스 열을 사용하면, B-Tree 인덱스가 활용됨B-Tree Index계층 구조 : 트리의 뿌리(root) 노드부터 가지(branch)노드를 거쳐 잎(leaf)노드까지 탐색정렬된 데이터 : 잎 노드에는 인덱스 열의 값과 해당 값이 저장된 행의 물리적 위치(또는 기본 키값)가 정렬된 상태로 저장균형 트리 : 모든 잎 노드가 동일한 깊이에 있도록 트리의 균형이 자동으로 유지. 어떤 데이터 찾든 탐색 시간이 일정하게 유지빠른 탐색: 각 노드에서 자식 노드로의 탐색은 비교 연산을 통해 빠르게 이루어짐이외에도 다양한 목적에 맞는 여러 종류의 인덱스를..

MySQL 2025.09.12 0

[DBMS] MySQL(2) - MySQL 특화 SQL

MySQL SQLMySQL은 기본적으로 표준 SQL을 따르지만 특정 기능이나 성능 최적화를 위해 고유한 구문이나 확장 기능을 추가하게 됨.MySQL 특화 SELECT 구문 및 기능SELECT 는 데이너를 조회하는 가장 기본적인 구문이며, MySQL은 결과 집합을 제어하는데 특화된 구문 제겅결과 개수 제한표준 SQL에서는 결과 집합 개수를 제한하기 위해 Workspace FIRST n ROWS ONLY 를 사용하나 MySQL은 LIMIT 절을 사용함--표준 SQLSELECT column1, column2 FROM table_name FETCH FIRST 10 ROWS ONLY;--MySQLSELECT column1, column2 FROM table_name LIMIT count; --처음부터 count ..

MySQL 2025.09.12 0