MySQL

Develop/Database

[MySQL] 트랜잭션, ACID와 MySQL이 트랜잭션의 ACID를 보장하는 방법들

개요 내가 백엔드 개발자라면, 또는 DB를 공부해 본 적이 있다면 한 번쯤은 ACID에 대해 들어봤을 것이다. 생각해보면 DB를 공부하며, 또는 개발 면접을 준비하며 ACID를 달달 외운 적은 있어도, 각각의 특성을 어떻게 DBMS가 보장해주는지를 찾아본 적은 없는 것 같다. 오늘은 트랜잭션, ACID에 대해 알아보고, MySQL이 ACID 각각의 특성을 어떻게 보장해주는지까지 공부해보자 💪 트랜잭션이란? 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션의 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. - 위키백과 : 데이터베이스 트랜잭션 문서 ^^ 봐..

Develop/Database

[MySQL] MySQL의 아키텍처와 성능 핵심을 알아보자

개요 즐거운 추석..에 갑자기 인덱스에 꽂혔다. 책이며 강의며 막 뒤지면서 듣는데, 이거 고냥 보고 끝낼게 아니라 정리해두면 더 기억에 잘 남겠다 싶어서 블로그도 쓱싹 쓰게 되었다 😄 쓰다보니 내용이 길어져서 이번 포스팅에선 아키텍처와 구조적 특성 위주로 작성하고, 다음 포스팅에서 인덱스와 자료구조를, 그 다음 포스팅에서 인덱스 종류에 대해서 다뤄볼까 한다. (한번 공부해서 포스팅 3개로 우려먹기 ^_____^ v) 그럼 아이엠그라운드 MySQL 아키텍처 시작! MySQL의 아키텍처 MySQL 서버 아키텍처를 이해하면 우리가 작성한 SQL이 어떻게 실행되는지 알 수 있고, 실행 과정을 알면 튜닝 방법을 알 수 있다 🤔 우리가 아무 생각 없이 사용하는 MySQL 안에서 쿼리는 어떻게 처리되고 있을까? 한번..

Develop/Spring

[Spring Boot] count를 구현하는 5가지 방법

개요 프로젝트를 하다보면 count를 자주 사용하게 된다. 게시글의 수, 댓글의 수, 친구 수, 알림 수, 통계 처리 등 아주 다양한 count 요구사항이 존재한다. Spring JPA를 사용하면 count 키워드 (쿼리 메소드)를 이용해 아주 쉽게 해당 기능을 구현할 수 있다. 하지만 우리가 무심코 사용하는 count 쿼리, 과연 데이터 수가 많을 때에도, 그리고 request 수가 (또는 TPS) 많을 때에도 잘 작동할까? count 를 구현하는 5가지 방법들과, 각각의 장단점을 알아보자. 개발 환경 1. Framework : Spring Boot 2.6 2. Programming Language : Java 11 3. DataBase : MySQL 8 4. OS : macOS Ventura 13.2..

스껄한우디
'MySQL' 태그의 글 목록