데이터베이스(DataBase, DB)
1. DB
데이터베이스(DataBase, DB)란, 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임을 말합니다.
** 데이터베이스는 등산할 때 기반이 되는 기지를 베이스캠프라 하듯이 데이터베이스라는 용어도 1950년대 미국에서
데이터의 기지라는 뜻에서 데이터베이스라는 용어를 처음 사용함
1.1 유형
1.1.1 계층형(Hierarchical DataBase)
데이터 간의 관계가 부모-자식 관계의 트리 형태의 구조로, 부모-자식 간에는 1:N(일 대 다)로 구성될 수 있습니다.
계층형은 데이터를 세그먼트 (레코드) 단위로 관리하며 세그먼트 간 계층을 트리구조로 관리합니다. 이에 따라, 구조가
간단하고 구현/수정/검색이 쉽지만 부모 자식 간에 N:N(다 대 다) 관계 처리가 불가능하며 구조 변경이 어렵습니다.
1.1.2 관계형(Relational DataBase)
관계형은 키(key)와 값 (value)으로 이루어진 데이터들을 행(row)과 열 (column)로 구성된 테이블 구조로 단순합니다.
이러한 테이블을 조인(join)하여 정보 간 관계 또는 링크를 설정할 수 있는 기능이 있어,
여러 데이터 포인트 간의 관계를 쉽게 이해하고 정보를 얻을 수 있습니다.
1.1.3 객체 지향형(Object-Oriented DataBase)
객체 지향형은 객체지향 프로그래밍 개념에 기반하여 만든 데이터베이스 모델로, 정보를 객체의 형태로 표현합니다.
클래스, 상속 등의 객체지향 프로그래밍 개념을 사용할 수 있으며, CAD/CAM. GIS 등의 비정형 데이터들을
데이터베이스화 할 수 있도록 하기 위해 만들어졌습니다.
1.1.4 객체 관계형(Object-Relational DataBase)
관계형 데이터베이스에 객체 지향 개념을 도입하여 만든 데이터베이스로,
객체 지향 개념을 지원하는 SQL을 사용할 수 있고, 데이터 타입도 관계형 데이터베이스보다 더 다양하게 추가됩니다.
관계형 데이터베이스(Relational DataBase, RDB)
1. 관계형 데이터베이스(Relational DataBase, RDB)
관계형DB는 엑셀 표에 데이터를 저장하는 것과 같이 데이터를 테이블 형태로 저장합니다.
** 관계형DB는 1970년대 IBM에서 일하던 에드거 F.커드가 제안하였음
테이블, 행, 열의 정보를 구조화 하는 방식으로, 각 데이터 항목들은 행(row)에 저장되고, 항목의 속성은 열(column)
이라고 표현하며, 열은 항목의 속성인 만큼 입력되는 데이터의 유형이 정해지게 됩니다.
여기서 구조는 어떤 데이터가 테이블에 들어가고, 어떤 데이터가 그렇지 않은지를 정의하는 필드집합을 가르킵니다.
열(column): 필드(field)라고도 부르며, 항목의 속성(명칭)을 나타내며 필드마다 각각 정수, 텍스트 등 데이터 유형을 정할 수 있음 행(row): 레코드(record)라고도 부르며, 각 데이터 항목을 저장함 스키마(schema): 필드는 데이터 유형뿐만 아니라 제약사항도 지정할 수 있는데, 이러한 제약사항을 스키마라고 부름 (예: 필드는 중복 값을 해당 행에 저장할 수 없다거나, 반드시 값을 가져야 한다(not null)는 조건 등) |
쉽게 말해, 관계형DB는 데이터가 하나 이상의 열과 행의 테이블(또는 관계)에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터 구성하는 정보의 모음입니다.
1.1 관계
지금까지의 내용을 바탕으로 생각해보면, 왜 '관계'라는 이름이 붙여졌는지 알 수 있을텐데요.
'관계'라는 이름이 붙여진 이유는 바로 각 테이블의 행과 행이 연결되는 관계를 맺을 수 있기 때문입니다.
테이블 간의 관계는 일 대 일, 일 대 다(1:N), 다 대 다(N:N)의 관계가 있는데, 이 때, 하나의 테이블에 필요한 모든 필드를 넣고 모든 데이터 항목을 저장하면 데이터들이 중복된 상태로 저장되는 상황이 발생할 수 있어 비효율적이게 됩니다.
예를 들어서, 위 사진처럼 고객의 상품 주문을 저장하는 테이블이 있다고 가정했을 때 특정 고객이 여러 상품을 구매하는 경우, 고객 이름과 고객 지역 데이터가 계속해서 중복되며, 대량의 데이터일 경우 매우 곤란하게 됩니다.
하지만, RDB모델에서는 위 사진과 같이 테이블을 분리하여 행과 행을 연결할 수 있습니다. 이렇게 테이블을 분리하고
관계를 형성해 데이터를 효율적으로 관리할 수 있습니다. 테이블 간의 관계는 기본 키(primary key) 와 외래 키(foreign key) 라는 개념을 사용하여 맺어질 수 있고, 여기서 기본 키는 고유한 ID 필드로 그림에서는 고객 번호 필드입니다.
이 필드는 각 행이 중복된 값을 가질 수 없으며, 외래 키는 기본 키를 참조하는 필드로 그림에서는 주문 테이블의
고객 번호 필드이고 각 테이블의 행을 연결시켜주는 역할을 합니다.
정리하자면, RDB는 데이터 간의 매우 복잡한 관계를 보여주는 데에도 탁월하기 때문에 데이터가 DB의 사전 정의된
관계형 스키마를 준수하는 한 더 많은 테이블의 데이터를 참조할 수 있습니다. 또, 데이터가 사전 정의된 관계로
구성되므로 데이터를 선언적으로 쿼리할 수 있습니다. (선언적 쿼리란, 시스템이 결과를 어떻게 연산해야 하는지 표현하지 않고 시스템에서 추출할 내용을 정의하는 방법으로, 이는 다른 시스템과 달리 관계형 시스템의 핵심)
1.2 이점
관계형DB는 아래와 같은 다양한 이점을 가집니다.
- 직관적인 데이터 표현 방법을 제공하고, 관련 데이터 포인트에 쉽게 엑세스할 수 있음
- RDB를 사용하면 데이터를 관리하고 저장할 때 다음과 같은 여러 가지 장점이 있음
- ‘유연성’, ‘ ACID(Atomicity, Consistency, Isolation, Durability) 규정 준수’, ‘사용 편의성’, ‘공동작업’, ‘내장된 보안 기능’, ‘데이터베이스 정규화’, …
1.3 DB vs. RDB
비관계형DB와 관계형DB의 주요 차이점은 데이터를 저장하고 구성하는 방법입니다.
비관계형DB는 규칙 기반의 테이블 형식 방식으로 데이터를 저장하지 않고, 데이터를 연결되지 않은 개별 파일로
저장합니다. 이에 따라, 문서나 리치 미디어 파일과 같이 복잡하고 구조화되지 않은 데이터 유형에 사용할 수 있습니다.
추가적으로, 관계형DB와 달리 비관계형DB는 유연한 데이터 모델을 따르므로 자주 변경되는 데이터를 저장하거나
다양한 유형의 데이터를 처리하는 애플리케이션에 적합합니다.
RDB의 주요한 특징 중 하나는 SQL(RDBMS에서 사용하는 프로그래밍 언어)이라는 구조화 질의어를 사용하는데,
이 SQL을 통해 RDBMS에서 데이터를 검색/추가/업데이트/삭제 하는 작업 등을 통해 데이터를 관리합니다.
그렇다면, 이번에는 DBMS.와 RDBMS. 그리고 SQL.에 대해서 알아보겠습니다.
데이터베이스 관리 시스템(DataBase Management System, DBMS)
1. DBMS
DBMS는 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어들을 의미합니다.
DB는 곧 DBMS라고 할 만큼 DBMS는 매우 중요하며, 중요한 이유는 다음과 같습니다.
** DB를 관리 및 운영하는 인력은 DBAdministrator
- DBMS 존재 이전에는 파일 시스템(응용 프로그램을 이용해 데이터를 파일로 관리)를 이용하여 데이터를 관리
- 파일 기반으로 데이터 관리 시, 데이터의 중복/불일치 등의 문제가 발생하는데, 이러한 단점을 보완하기 위함
1.1 DBMS의 특징
** DBMS의 특징은 DBMS(및 SQL)의 장점과 더불어 파일 시스템의 단점으로 볼 수 있음
① 데이터의 독립성 (파일 시스템은 데이터와 응용 프로그램이 상호 의존 관계에 있음)
> 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도
관련된 응용 프로그램을 수정할 필요가 없음 (파일 시스템은 응용 프로그램의 기능을 확장하려면
파일의 구조를 재조직해야 함)
> 논리적 독립성 : 데이터베이스는 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있음 (파일 시스템에서는
파일의 구조가 응용 프로그램에 반영되어 있기 때문에 파일의 구조가 바뀌면 영향을 받는 모든
응용 프로그램들을 수정해야 함)
② 데이터의 무결성
: 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의
무결성을 구현하게됨. 예를 들면, 입력 조건에 맞지 않는 입력값은 저장할 수 없도록 방지하는 기능이 있을 수 있음
(파일 시스템은 응용 프로그램 별로 제약 조건을 하나하나 처리해야하기 때문에 무결성을 유지하기가 어려움)
③ 데이터의 보안성
: 허가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정
함으로써 모든 데이터에 보안을 구현할 수 있음 (파일 시스템은 파일 단위로 검색, 갱신, 실행 등의 권한을 부여할 수
있어서 사용자 별 세밀한 접근 제어가 어려움)
④ 데이터의 일관성
: 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터 불일치성을
배제할 수 있고, 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있음
(파일 시스템에서는 중복된 데이터를 변경하는 게 어렵기 때문에 중복 데이터 중 일부만 변경된다고 하면 중복 데이터
간에 불일치가 발생할 수 있음)
⑤ 데이터의 중복 최소화
: 데이터베이스는 데이터를 통합해서 관리함으로써 데이터 중복 문제를 해결할 수 있음 (파일 시스템은 응용 프로그램
별로 데이터를 파일로 관리하기 때문에 같은 데이터가 여러 파일에 저장되어 데이터 중복 문제가 발생할 수 있음)
관계형 데이터베이스 관리 시스템(Relational DataBase Management System, RDBMS)
1. RDBMS
RDBMS는 RDB를 만들고, 업데이트하고, 관리하는 데 사용하는 프로그램입니다.
RDBMS에 예시로는 MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database가 있습니다.
참고로, Cloud SQL, Cloud Spanner, AlloyDB와 같은 클라우드 기반 관계형DB는 데이터베이스 유지보수, 패치, 용량 관리, 프로비저닝, 인프라 지원을 위한 관리형 서비스를 제공하기 때문에 점점 더 많은 인기를 얻고 있습니다.
구조적 질의 언어(Structured Query Language, SQL)
1. SQL
SQL이란, 관계형 데이터베이스 관리 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 표준 언어입니다.
즉, SQL은 데이터를 관리하고 조작하기 위한 언어로, 데이터베이스 자체와는 다르며, SQL을 사용하여 RDBMS에서
데이터를 저장, 수정, 삭제 및 검색할 수 있습니다.
1.1 단점
- 데이터 스키마는 사전에 계획되고 알려져야 하기 때문에 나중에 수정하기가 번거롭거나 불가능 할 수 도 있어 상대적으로 덜 유연함
- 관계를 맺고 있기 때문에, JOIN문이 많은 매우 복잡한 쿼리가 만들어 질 수 있음
- 수평적 확장이 어렵고, 대체로 수직적 확장만 가능함 즉, 어떤 시점에서 (처리 할 수 있는 처리량과 관련하여) 성장 한계에 직면하게 됩니다.
이렇게 SQL은 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우,
관계를 맺고 있는 데이터가 자주 변경/수정되는 애플리케이션일 경우에 사용하기 적합합니다.
** NoSQL에서라면 여러 컬렉션을 모두 수정해줘야 함
1.2 수직적 확장(Vertical Scaling) 과 수평적 확장(Horizontal Scaling)
두 종류의 데이터베이스(SQL{관계형DB}, NoSQL{비관계형DB})를 비교 할 때, 또 하나의 중요한 개념은 확장입니다.
데이터베이스를 어떤 방식으로 확장(데이터베이스 서버의 확장성) 시킬 수 있을까요?
확장은 수직적(Vertival) 확장과 수평적(horizontal) 확장으로 구별 할 수 있습니다.
1.2.1 수직적 확장
수직적 확장이란 단순히 데이터베이스 서버의 성능을 향상시키는 것을 의미합니다. (예: CPU를 업그레이드)
1.2.2 수평적 확장
더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산됨을 의미합니다.
따라서, 하나의 데이터베이스에서 작동하지만 여러 호스트에서 작동합니다.
데이터가 저장되는 방식 때문에 SQL 데이터베이스는 일반적으로 수직적 확장만을 지원합니다.
수평적 확장은 NoSQL 데이터베이스에서만 가능합니다.
SQL 데이터베이스는 '샤딩(Sharding)'의 개념을 알고 있지만 특정 제한이 있으며 구현이 대체로 어렵습니다.
NoSQL 데이터베이스는 이를 기본적으로 지원하므로 여러 서버에서 데이터베이스를 쉽게 분리 할 수 있습니다.
2. NoSQL(Not Only SQL.)
NoSQL은 비관계형 데이터베이스를 의미하는데, 기본적으로 SQL과 반대되는 접근방식을 따르며,
여기서 "Not Only SQL"이라는 이름은 이러한 데이터베이스가 SQL만 사용하지 않는다는 것을 의미합니다.
2.1 장점
- 스키마가 없어 훨씬 더 유연하며, 이를 통해 언제든지 저장된 데이터를 조정하고 새로운 "필드"를 추가할 수 있음
- 데이터는 애플리케이션이 필요로 하는 형식으로 저장되며, 이에 따라 데이터를 읽어오는 속도가 빨라짐
- 수직 및 수평 확장이 가능하므로, DB가 애플리케이션에서 발생시키는 모든 읽기, 쓰기 등의 요청을 처리할 수 있음
2.2 단점
- 유연성 때문에 데이터 구조 결정을 하지 못하고 미루게 될 수 있음
- 데이터 중복은 여러 컬렉션과 문서가 (SQL에서 처럼 하나의 테이블에 하나의 레코드가 아니라) 여러 개의 레코드가 변경된 경우 업데이트를 수행해야 함
- 데이터가 여러 컬렉션에 중복되어 있기 때문에, 수정(update)를 해야 하는 경우 모든 컬렉션에서 수행해야 함(SQL에서는 중복된 데이터가 없기 때문에 한번만 수행하면 됨)
이렇게 NoSQL은 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우,
읽기(read)처리를 자주하지만, 데이터를 자주 변경(update)하지 않는 경우(즉, 한번의 변경으로 수십 개의 문서를 업데이트 할 필요가 없는 경우),
데이터베이스를 수평으로 확장해야 하는 경우(즉, 막대한 양의 데이터를 다뤄야 하는 경우)에 사용하기 적합합니다.
3. NewSQL
NewSQL은 전통적인 DB 시스템의 ACID를 보장하면서 온라인 트랜잭션 처리 워크로드용 NoSQL 시스템의 확장성의
제공을 시도하는 RDBMS의 한 계열입니다. 쉽게 정의내리자면, RDBMS의 SQL과 NoSQL의 장점을 결합하여
트랜잭션 지원 및 확장성과 고가용성을 모두 만족시키려는 목적에서 만들어진 DB모델입니다.
NewSQL은 대용량 데이터 처리와 높은 확장성을 요구하는 현대의 데이터 처리 환경에 더 적합하도록 설계되어
성능, 고가용성, 자동 확장, 병렬 처리, 분산 아키텍처, 클라우드 네이티브 등 다양한 특징을 가지고 있습니다.
3.1 특징
3.1.1 RDBMS와 비교했을 때의 특징
① 확장성: 대용량 데이터 처리, 분산 처리를 지원하며 DB의 성능과 용량을 쉽게 확장할 수 있음
② 고성능: 고성능 처리를 위해 최적화된 알고리즘과 데이터 구조를 사용하여, 빠른 데이터 검색 및 처리를 지원함
③ 고가용성: 고가용성을 위해 여러 대의 서버에 데이터를 복제하고, 자동으로 장애를 감지하고
처리할 수 있는 기능을 제공함
④ 분산 아키텍처: 데이터를 여러 서버에 분산 저장하고 처리하는 분산 아키텍처를 가짐으로써, 높은 가용성과
뛰어난 확장성 구현이 가능
⑤ 클라우드 네이티브: 클라우드 환경에서의 운영을 고려하여 설계되었으며, 클라우드 컴퓨팅 환경에서 원활하게 동작
할 수 있는 기능을 제공
3.1.2 RDBMS로서 가지는 특징
① 확장성: 대규모의 데이터 처리와 분산 처리를 지원하고 DB의 성능과 용량을쉽게 확장할 수 있으며,
대용량 데이터를 효율적으로 처리하고, 수평적 확장 (Sharding) 등의 기술을 통해 높은 확장성을 제공함
② 고성능: 고성능 처리를 위해 최적화된 알고리즘과 데이터 구조를 사용하여 빠른 데이터 검색 및 처리를 지원하고,
다양한 최적화 기술을 활용하여 DB의 처리 성능을 극대화함
③ 고가용성: 고가용성을 위해 여러 대의 서버에 데이터를 복제하고, 장애가 발생하면 자동으로 장애를 감지하고
처리할 수 있는 기능을 제공함으로써 DB의 가용성을 향상시키고, 서비스 중단을 최소화함
④ 분산 아키텍처: 데이터를 여러 서버에 분산 저장하고 처리하는 분산 아키텍처를 가짐으로써, 높은 가용성과
뛰어난 확장성 구현이 가능하며, 데이터의 분산 관리와 병렬 처리를 통해 처리 성능을 향상시킴
⑤ 클라우드 네이티브: 클라우드 환경에서의 운영을 고려하여 설계되었으며, 클라우드 컴퓨팅 환경에서 원활하게 동작
할 수 있는 기능들과 가상화, 컨테이너화, 오토스케일링 등의 클라우드 네이티브 기능을 지원함
⑥ ACID 준수: 기존의 RDB와 마찬가지로 데이터의 일관성, 내구성, 격리성, 동시성(ACID)을 보장하고,
이를 통해 데이터의 신뢰성과 일관성을 유지함
⑦ SQL 호환성: 기존의 SQL을 사용하여 데이터를 조회하고 조작할 수 있는데, 이는 기존의 RDBMS와의 호환성을
제공하며, 기존의 SQL기반 애플리케이션을 쉽게 이식할 수 있음
NewSQL이 가지는 이러한 특징들은 현대의 데이터 중심 애플리케이션들에 대한 요구를 충족시키고,
대규모의 데이터 처리와 DB 운영을 효율적으로 관리하기 위한 목적으로 개발되었습니다.
NewSQL은 기존의 RDB와 NoSQL DB의 장점을 조합하여, 현대적인 데이터 처리 환경에 높은 확장성과
성능을 제공하는 새로운 유형의 DBMS으로 평가받고 있습니다.
3.2 종류
다양한 NewSQL DB중에서도 대표적인 DB만 간략하게 알아보겠습니다.
- Google Spanner
- 구글이 개발한 분산 관계형 DB로, 고성능 및 고가용성을 제공함. Spanner는 글로벌 규모의 분산 데이터 처리를 지원하며, 데이터의 위치 투명성, 장애 허용성, 데이터의 일관성 등의 특징을 가짐
- CockroachDB
- 분산 관계형 DB로, 확장성과 가용성을 강조하며, 클라우드 네이티브 환경에서 운영될 수 있는 기능을 제공함. ACID 준수, 자동 데이터 복제, 자동 분산, 가용성 등의 특징을 가짐
- TiDB
- 분산 관계형 DB로, 대용량 데이터 처리와 고성능을 중요시하며, DB와 분석 기능을 통합한 HTAP(하이브리드 트랜잭션/분석 처리) 기능을 제공함. 사용성, 자동 분산, 데이터 일관성 등의 특징을 가짐
- VoltDB
- 인메모리 DB로, 고성능 트랜잭션 처리를 강조하며, 실시간 데이터 처리와 빠른 데이터 분석이 가능함. ACID 준수, 고성능 트랜잭션 처리, 실시간 데이터 처리 등의 특징을 가짐
- MemSQL
- 인메모리 DB로, 높은 성능과 가용성을 강조하며, 실시간 데이터 처리와 DB와 분석 기능을 통합한 HTAP 기능을 제공함. ACID 준수, 인메모리 처리, 실시간 데이터 처리 등의 특징을 가짐
- NuoDB
- 분산 관계형 DB로, 클라우드 네이티브 환경에서 운영될 수 있는 기능을 제공하며, 가용성과 확장성을 강조함. ACID 준수, 자동 분산, 가용성 등의 특징을 가짐
지금까지의 내용을 간략하게 정리해보면, 아래와 같습니다.
DB: 관련 데이터의 집합(구조화된 정보의 모음) |
DBMS: DB의 생성, 관리, 접근 및 업데이트를 위한 시스템으로, 데이터 무결성, 보안, 백업 및 복구 등의 기능을 제공 |
RDB: 데이터를 테이블 형태로 저장하고, 이 테이블들 간의 관계를 통해 데이터를 조작하는 DB |
RDBMS: 관계형 모델을 기반으로 하는 DBMS |
SQL: 관계형DB에서 데이터를 관리 및 조작하기 위한 표준 프로그래밍 언어 |
NoSQL: 비관계형 데이터베이스를 총칭하는 용어 |
NewSQL: RDBMS의 SQL과 NoSQL의 장점을 결합한 관계형 모델 |
그리고 MySQL을 많이 들어보셨을 텐데요,
SQL과 NoSQL 그리고 MySQL의 정확한 이해를 돕기 위해, MySQL에 대해서도 한번 알아보겠습니다.
4. MySQL
MySQL은 데이터가 체계적으로 배열 및 유지되도록 돕는 소프트웨어로, 전 세계에서 가장 인기 있는 오픈소스 관계형
데이터베이스 중 하나입니다.
이러한 MySQL은 25년 이상 사용자와 긴밀히 협력하여 개발한 여러 기능이 포함되어 있습니다.
MySQL은 RDBMS의 한 예로, DB에 여러 사용자의 접근이 가능하게 하고, DB를 쿼리(저장, 통제, 수정 등)하기 위해
SQL을 사용합니다.
4.1 특징
- SQL을 사용하는 오픈 소스의 RDBMS이라는 DB 카테고리에 속하며, 매우 빠르고 유연하며, 사용하기 쉬움
- 다중 사용자, 다중 쓰레드를 지원하고, C, C++, Eiffel, 자바, 펄, PHP, Python 스크립트 등을 위한 응용프로그램 인터페이스(API)를 제공함
- 유닉스나 리눅스, Windows 운영체제 등에서 사용할 수 있으며, LAPM 즉, 리눅스 운영체제와 Apache 서버 프로그램, MySQL, PHP 스크립트 언어 구성은 상호 연동이 잘되면서도 오픈소스로 개발되는 무료 프로그램이어서 홈페이지나 쇼핑몰 등 일반적인 웹 개발에 널리 사용되고 있음
4.2 장점
- 빠르고 안정적이며, 확장 가능하고 사용하기 쉬움
- 다른 애플리케이션, 웹 서버 등과 함께 원활하게 실행할 수 있어 신경을 많이 쓰지 않아도 됨
- 전체 머신을 MySQL 전용으로 사용할 경우, 사용 가능한 메모리, CPU, I/O 용량을 활용하도록 설정 조정 가능
- MySQL은 서로 연결된 머신 클러스터로 수직 확장할 수 있음
- 이외에도, 고가용성, 보안, 백업 및 복원, 유연성, 사용 편의성 등 다양한 부분에서 이점이 존재
댓글