쿼리 라우팅 설정하기: ProxySQL 활용법
·
📊DB/MySQL
⚙️ VersionOS: rocky 9.5ProxySQL 3.0.2백앤드 DB: MySQL 8.4.X 버전서비스 API 에서 붙어야하는 백앤드 DB(master[Writer/Read], ReadReplica[Read])가 두개였다. 서비스 API 에서 보내는 쿼리 CRUD에 맞게 라우팅을 해야하는 상황이었다.🔖 사전정보Admin 포트 6032 (기본 계정 admin/admin)MySQL 프록시 포트 6033ProxySQL 설정은 메모리(Runtime) ↔ 디스크(SQLite, /var/lib/proxysql/proxysql.db) 레이어로 관리하고, 필요시 config 파일도 사용. Admin에서 변경 후 LOAD … TO RUNTIME; SAVE … TO DISK;가 관례.⚙️ 설치 (Rocky/Al..
DB 실행계획 차이: 원인 및 해결책
·
📊DB/MariaDB
🚨 문제 상황 소개개발 DB와 운영 DB, 같은 버전/같은 테이블/같은 쿼리인데 실행계획이 달라졌다.한쪽은 인덱스를 타고, 다른 한쪽은 풀스캔 + filesort 발생원인 추적 과정 간단히 설명 (EXPLAIN 결과 비교)🧱 실행계획 차이 원인옵티마이저는 비용 기반(cost-based) 으로 플랜을 선택.이때 “선택도(selectivity)” 추정이 중요.그런데 추정 방식이 통계값만 보느냐, 실제 인덱스를 내려가 보느냐에 따라 결과가 달라짐.⚠️ 인덱스 다이브(Index Dive)란?개념: 옵티마이저가 실제 인덱스 레벨에서 값 분포를 확인해 정확한 선택도를 계산하는 과정.장점: 더 정확한 실행계획.단점: 옵티마이저가 실행계획 계산에 시간이 조금 더 걸림.⚙️ EQ_RANGE_INDEX_DIVE_LIM..
MariaDB ➡️ MySQL Migration: mydumper & myloader 사용법 정리(스키마 제외, 데이터만)
·
카테고리 없음
📌 개요이 글에서는 MySQL에서 특정 데이터베이스의 데이터만 덤프하고, 다른 서버에 복원하는 과정을 mydumper / myloader 툴로 설명합니다.✅ 병렬 덤프 및 복원 지원✅ 데이터만 추출 및 복원✅ 병렬 덤프 및 복원 지원🧱 설치🧤 ubuntusudo apt updatesudo apt install mydumper -y🧤 데이터 덤프 (Source DB 에서)mydumper \ -h [DB-IP] \ -u [User] \ -p ['password'] \ -B [DataBase_name] \ --no-schemas \ --outputdir /home/ubuntu/[output_dir] \ --threads 4🔖 옵션 설명옵션설명-hDB 서버 주소-u, -p접속 계정 정보-B..