알쓸코지
article thumbnail
[회고] Real MySQL 8.0 뿌시기🔥 스터디 회고록
기타/회고 2024. 4. 11. 15:06

스터디 소개 🌱 기간: 2024.01.05 ~ 2024.04.05 (13주) 소개: Real MySQL 8.0 교재를 활용한 데이터베이스 스터디 시간: 매주 1회, 1시간 30분 / 디스코드 🔗 GitHub 🔗 Notion 프로젝트를 할 때 꼭 사용하는 MySQL였지만, 스키마 및 테이블 생성, 기본 SQL문 실행을 제외하고는 어떤 기능이 있는지, 어떻게 동작하는지 알지 못했다. 그래서 MySQL의 전반적인 개념을 이해하고 MySQL을 더 잘 사용하고 싶어서 스터디에 참여하게 되었다. 매주 정해진 분량을 읽고, 나만의 주제를 정해 블로그 글을 작성한 뒤 발표도 하고 질의응답도 가지는 방식으로 진행했다. 스터디 목표 달성 여부 확인 ✅ 스터디 초기 목표를 다시 돌아보며, 어떤 것을 이뤘는지, 개선할 점은 ..

article thumbnail
[MySQL] MySQL 성능 모니터링 방법
Backend/Database 2024. 4. 4. 18:12

MySQL 성능 모니터링 중요성 데이터베이스 시스템의 안정성과 성능 유지를 위해 중요함 시스템 성능 향상 시스템의 병목 현상을 식별하고 최적화할 수 있음 실행 시간이 오래 걸리는 쿼리, 대기 이벤트, 시스템 리소스 부족 등의 문제를 식별하여 해결함으로써 시스템 성능 향상 장애 예방 및 대응 잠재적인 문제를 사전에 감지하여 장애를 예방할 수 있음 CPU 사용률이 급격히 증가하거나, 디스크 공간이 부족해지는 등의 문제를 식별할 수 있음 최적화된 리소스 관리 모니터링을 통해 리소스 사용량을 실시간으로 파악할 수 있음 리소스의 효율적인 할당과 관리가 가능해지며, 불필요한 리소스 소모를 방지할 수 있음 MySQL 성능 모니터링 방법 performance 스키마 & sys 스키마 사용 MySQL 서버의 내부 작업 ..

article thumbnail
[MySQL] 데이터베이스 확장 방식
Backend/Database 2024. 3. 21. 18:59

사용자 수의 증가로 인해 발생하는 트래픽을 안정적으로 처리하기 위해서, 데이터 손실을 방지하기 위해서 등 서비스 운영에 있어 데이터베이스 확장은 중요한 요소라고 할 수 있다. 오늘은 데이터베이스 확장 방식인 클러스터링, 복제에 대해서 간단히 알아보고 어떤 상황에 적합한지 정리해보고자 한다. 데이터베이스 구성 방식 가장 기본적인 데이터베이스 구성은 다음과 같이 `DB 서버`와 디스크 역할을 하는 `DB 스토리지`가 1:1이 되도록 구성하는 것이다. 이러한 구조로는 트래픽의 증가로 성능이 저하되거나, 데이터베이스 서버 다운으로 인한 서비스 중단 등의 문제를 해결할 수 없다. `클러스터링`, `복제` 기법을 활용하여 데이터베이스를 확장하여 이러한 문제를 해결할 수 있다. 클러스터링(Clustering) 여러 ..

article thumbnail
[MySQL] 커서(Cursor)
Backend/Database 2024. 3. 14. 15:07

커서 테이블에서 여러 개의 행을 쿼리한 후, 쿼리 결과 집합을 한 행씩 처리하기 위한 개체 주로 SQL 쿼리 결과 집합을 반복적으로 탐색하고 처리하는 데 사용됨 스토어드 프로시저, 스토어드 함수, 트리거에서 커서를 사용할 수 있음 커서 분류 속성에 따라 두 그룹으로 분류해 보았다. 변화에 얼마나 민감한지에 따라 - Sensitive / Insensitive / Asensitive Sensitive Cursor 일치하는 레코드 정보를 실제 레코드의 포인터만으로 유지하는 형태 커서를 이용해 칼럼의 데이터를 변경하거나 삭제하는 것이 가능함 별도로 임시 테이블로 레코드를 복사하지 않기 때문에 커서의 오픈이 빠름 Insensitive Cursor 일치하는 레코드를 별도의 임시 테이블로 복사해서 가지고 있는 형태 ..

article thumbnail
[MySQL] Direct I/O
Backend/Database 2024. 2. 29. 20:58

Real MySQL 8.0 - 11.8 쿼리 성능 테스트 부분에서 Direct I/O라는 용어가 나왔는데, MySQL 튜닝의 중요한 요소인 것 같아서 정리하게 되었다. Direct I/O 란? 운영체제의 파일 시스템 캐시를 사용하지 않고 데이터를 직접 디스크에 읽거나 쓰는 방법 일반적으로 운영체제는 파일을 읽을 때 파일 시스템 캐시를 사용하여 읽기 속도를 향상시킨다. (`Buffered I/O`) 파일이 한 번 읽힌 후, 해당 데이터는 캐시에 저장되어 다음에 동일한 데이터에 액세스할 때 디스크로부터 읽는 대신 캐시에서 데이터를 제공한다. 즉, 캐시 히트했을 경우의 데이터 읽기 속도가 빨라진다. 그런데 InnoDB는 이미 `버퍼 풀`이라는 훨씬 고도화된 메모리 영역을 가지고 있기 때문에 동일한 데이터를 버..

article thumbnail
[MySQL] 문자열 패턴 매칭 연산자 (REGEXP, LIKE)
Backend/Database 2024. 2. 22. 20:37

MySQL에서 문자열 패턴 비교 연산자인 REGEXP, LIKE에 대해서 알아보고 자주 쓰이는 패턴에 대해서 정리해보고자 한다. 문자열 패턴 매칭 연산자 REGEXP 연산자 문자열 값이 어떤 패턴을 만족하는지 확인하는 연산자로, `RLIKE(Regular Expression)`와 동일한 역할을 수행한다. SELECT 'abc' REGEXP '^[x-z]'; 연산자의 좌측: 비교 대상(문자열 값 또는 문자열 칼럼) 연산자의 우측: 검증하고자 하는 정규 표현식 `REGEXP` 연산자는 정규 표현식을 토대로 하는 패턴 매칭 연산을 제공하는데, POSIX 표준으로 구현되어 있어 POSIX 정규 표현식에서 사용하는 패턴 키워드를 그대로 사용할 수 있다. POSIX? - Portable Operating Syste..