MySQL 성능 평가를 위한 Sysbench 기반 압력 테스트 전략
데이터베이스 성능 병목 현상의 핵심 요소
웹 애플리케이션 아키텍처에서 대부분의 구성 요소는 수평 확장(horizontal scaling)을 통해 용량을 쉽게 증가시킬 수 있습니다. 네트워크 대역폭, 애플리케이션 서버 클러스터, 캐시 인프라(Redis, Memcached 등)는 추가 서버를 배포함으로써 즉각적인 성능 향상을 기대할 수 있습니다. 그러나 데이터베이스, 특히 MySQL과 같은 ...
6월 2일 21:45에 게시됨
MySQL 락(Lock) 완벽 가이드: 글로벌 락, 테이블 락, 로우 락 이해하기
MySQL에서는 락(Lock)을 적용하는 범위에 따라 크게 글로벌 락(Global Lock), 테이블 락(Table Lock), 로우 락(Row Lock) 세 가지 유형으로 나눌 수 있습니다. 각 락의 특징과 사용법을 상세히 알아보겠습니다.
1. 글로벌 락 (Global Lock)
글로벌 락 사용법
글로벌 락을 사용하려면 다음 명령어를 실행합니다:
FLUSH TABLES WITH READ LOCK;
이 명령 실행 후 데이터베이 ...
6월 2일 21:34에 게시됨
스프링부트와 Vue 기반 문화예술 행사 디지털 홍보 시스템 구현
시스템 개요 및 필요성
현대 사회는 문화 다양성과 예술 접근성에 대한 수요가 급증하고 있다. 글로벌화 속도가 빨라짐에 따라 예술 행사 수가 급격히 증가했지만, 전통적인 홍보 방식인 포스터, 배너, 오프라인 광고 등은 타겟 대상에게 정확하게 도달하기 어렵고, 정보 과잉 상황에서 사용자 관심을 확보하는 데 한계가 있다. 이에 따라 행사 운영자는 높은 홍보 비용, ...
6월 2일 19:11에 게시됨
Keepalived를 활용한 MySQL 이중화 아키텍처 구축
1. 설계 개요
프로덕션 환경에서 MySQL 클러스터는 높은 가용성, 확장성, 관리 용이성 및 낮은 비용을 요구합니다. 이 글에서는 실무에서 자주 사용되는 MySQL Active-Active 복제 아키텍처를 소개합니다. 핵심 아이디어는 MySQL 복제 기술을 사용하여 두 대의 MySQL 서버가 서로를 Master로 인식하고, 동시에 상대방의 Slave 역할을 수행하도록 구성하는 것입니다. 이를 ...
6월 1일 22:44에 게시됨
MySQL 파티션 자동 관리(SpringBoot+MybatisPlus)
1. 개발 환경
SpringBoot
MybatisPlus
MySQL
2. 개요
이 솔루션은 다음과 같은 기능을 제공합니다:
@Scheduled 어노테이션을 사용한 일일 스케줄러를 통해 현재 데이터베이스의 모든 파티션 테이블을 조회합니다(여기서는 시간 범위로 파티셔닝).
남은 파티션 수가 설정된 예비 파티션 수보다 적은 경우(사용자 정의 예비 파티션이 없는 경우 기본 설정 사용), 필요한 ...
6월 1일 22:05에 게시됨
MySQL 문자열, 날짜, 집계 함수 활용 기법
문자열 처리
FIND_IN_SET을 이용한 콤마 구분 값 검색
FIND_IN_SET(substring, str) 함수는 주어진 하위 문자열이 콤마로 구분된 문자열 내에 존재하는지 확인하고, 첫 번째 일치 위치를 반환합니다. 매칭되지 않으면 0을 반환하며, 대상 문자열이 콤마로 분리되지 않은 경우에도 정상 동작하지 않습니다.
SELECT FIND_IN_SET('b', 'a,b,c'); -- 결과: 2
SELECT FIND_IN_ ...
6월 1일 21:02에 게시됨
CentOS 7에서 Cacti 모니터링 시스템 설치 및 설정
LNMP 환경 준비
먼저 웹 서버, 데이터베이스, PHP 환경을 구성합니다.
공식 사이트를 통한 자동 설치: https://lnmp.org/install.html
또는 수동 설치: yum 패키지 매니저를 사용하거나 직접 소스 설치 가능 (구글 검색 참고)
SNMP 및 그래프 도구 설치
yum install -y net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl
yum install -y rrdtool ...
6월 1일 01:51에 게시됨
Spark SQL에서 Hive 메타스토어 연결 설정 방법
Hive 메타스토어를 사용하는 Spark SQL 환경 구성
Spark SQL을 통해 Hive 테이블에 접근하려면 Spark가 Hive의 메타데이터 저장소(Metastore)에 연결할 수 있도록 설정해야 한다. 이를 위해 MySQL 기반의 Hive Metastore와 Spark 간의 연동을 구성하는 절차를 설명한다.
1. MySQL에 Hive 메타스토어 데이터베이스 생성
Hive가 테이블 스키마 및 파티션 정보를 저장할 수 ...
5월 31일 23:10에 게시됨
PHP 기반 웨이신 마이크로앱용 문산 관광지 숙박 시설 관리 시스템
시스템 개요
본 프로젝트는 웨이신 마이크로앱을 기반으로 한 문산 관광지 숙소 운영 관리 시스템입니다. 백엔드는 PHP를 사용하며, 전면은 Vue.js 프레임워크로 구현되어 있으며, 모바일 기기에서의 접근성을 고려한 반응형 인터페이스를 제공합니다. 주요 기능으로는 사용자 인증, 객실 예약, 예약 조회, 관리자 대시보드, 게시판 등이 포함됩니다.
기술 스택
백엔드 ...
5월 31일 13:57에 게시됨
MySQL 인덱스 활용 및 쿼리 최적화 전략 요약
1. LIKE 절의 효율적인 인덱스 활용
LIKE 연산자를 사용할 때 'keyword%'와 같이 우측에 와일드카드를 배치하면 인덱스 범위를 효과적으로 탐색할 수 있습니다. 반면, '%keyword'나 '%keyword%'는 인덱스 풀 스캔을 유발하므로 주의가 필요합니다.
MySQL 5.6 버전부터는 인덱스 조건 푸시다운(Index Condition Pushdown, ICP) 기능이 도입되어 성능이 개선되었습니다. 다 ...
5월 31일 01:54에 게시됨