8.1 최적화 개요

데이터베이스의 성능은 테이블, 쿼리, 환경 설정 등 데이터베이스 레벨의 여러 요소에 따라 달라집니다. 이러한 소프트웨어 구조가 하드웨어 레벨의 CPU, I/O 작업으로 이어지며, 이를 최소화하고 최대한 효율적으로 만들어야 합니다. 데이터베이스 성능과 관련된 일을 함에 있어, 소프트웨어 측면에서 높은 수준의 규칙과 가이드라인을 배우고 벽걸이 시계 같은 것을 사용하여 성능을 측정하는 것부터 시작하게 될 것입니다. 전문가 수준이 되고 나면, 내부에서 일어나는 일에 대해 더 많이 배우고, CPU 사이클, I/O 작업 등으로 성능을 측정하기 시작할 것입니다.

일반 사용자는 기존의 소프트웨어 및 하드웨어 구성에서 최고의 데이터베이스 성능을 얻는 것을 목표로 합니다. 고급 사용자는 MySQL 소프트웨어 자체를 개선할 수 있는 기회를 찾거나, 자체 스토리지 엔진과 하드웨어 어플라이언스를 개발하여 MySQL 생태계를 확장할 수 있습니다.

데이터베이스 레벨에서의 최적화

데이터베이스 애플리케이션의 속도를 높이는 데 있어 가장 중요한 요소는 기본 설계입니다:

참고사항
InnoDB는 신규 테이블의 기본 스토리지 엔진입니다. 실제, InnoDB의 고급 성능 기능으로 인해 단순한 MyISAM 테이블보다 나은 성능을 발휘하는 경우가 많으며, 특히 사용량이 많은 데이터베이스에서 뛰어납니다.

하드웨어 레벨에서의 최적화

데이터베이스가 바빠지면 바쁠수록 모든 데이터베이스 애플리케이션은 결국 하드웨어의 한계에 도달하게 됩니다. DBA는 애플리케이션을 조정하거나 서버를 재구성하여 이러한 병목 현상을 피할 수 있는지 또는 추가 하드웨어 리소스가 필요한지 여부를 평가해야 합니다. 시스템 병목 현상은 일반적으로 다음과 같은 원인으로 인해 발생합니다:

이식성과 성능 사이의 균형화

이식 가능한 MySQL 프로그램에서 성능 지향적인 SQL 확장 기능을 사용하려면, SQL문 내에 MySQL 전용의 키워드들을 /*!      */ 주석 구분 기호로 감쌉니다. 다른 SQL 서버는 주석으로 처리된 키워드를 무시합니다. 주석 작성에 대한 자세한 내용은 9.7절 '주석'을 참고합니다.

Revision #5
Created 8 September 2023 05:41:58 by 신민항
Updated 9 September 2023 17:26:07 by 신민항