2년간 회사를 다니면서, MySQL 데이터베이스와 관련한 다양한 이슈는 항상 내 곁을 따라왔다.
대게 이슈는 다음과 같은 형태를 가진다.
1. 슬로우 쿼리 최적화 이슈
2. 트랜잭션과 그 격리 레벨에 따른 동시성 이슈
3. 데이터 베이스이 리소스 관리 이슈
- 커넥션, CPU, 메모리 중 하나가 부족하여, 라이브 서비스에 발생한 장애가 그 예다.
위와 같은 이슈를 겪으면서 내가 가졌던 생각을 나열하면, 다음과 같다.
1. 데이터 베이스는 서버가 갖는 불가피한 외부 의존성이기에, 데이터 베이스의 장애는 서비스에 치명적일 수 밖에 없다.
2. 그렇기에, HA와 같이 장애가 발생했을 때의 방어 조치들도 중요하지만, 장애를 피할 수 있다면 최대한 피하는 것이 필요하다.
정리하면, 데이터 베이스의 선제/후속 조치는 규모가 있는 프로젝트에서는 반드시 필요하다는 것인데,
이런 조치와 결정을 내리기에 스스로가 가진 MySQL 아키텍쳐에 대한 지식이 부족함을 느꼈다.
데이터베이스의 어떤 값을 튜닝을 해야하는지, 데이터 베이스 설계를 할 때는 테이블 분리가 어느 정도 수준까지 이루어지는 것이 최선인지, B-Tree 인덱스가 특정 상황에서 어떻게 동작하는지 등.
위와 같은 고민들을 「High Performance MySQL」 책에서 풀어나가보고자 한다.
'Database > High Performance MySQL' 카테고리의 다른 글
운영 체제 및 하드웨어 최적화 (0) | 2023.08.26 |
---|---|
Performance Schema (2) (0) | 2023.08.17 |
Performance Schema (1) (0) | 2023.08.15 |
신뢰성 엔지니어링 환경에서의 모니터링 (2) | 2023.07.31 |
MySQL 아키텍처 (0) | 2023.07.23 |