db
-
Consistency, Availability, Partition tolerance3가지를 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다는 정리. 그림에서 가운데 영역에 들어가는 시스템은 존재할 수 없다. 각각의 요소들의 정의를 알아보자consistency 일관성모든 노드가 같은 순간에 같은 데이터를 볼 수 있다모든 노드는 동일한 데이터를 동시에 본다. 추가 읽기를 허용하기 전에 여러 노드를 업데이트하여 일관성을 확보한다분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했느냐와 관계없이 언제나 같은 데이터를 보게 되어야 한다availability 가용성모든 요청이 성공 또는 실패 결과를 반환할 수 있다하나 이상의 노드가 작동 중지되어도 데이터를 요청하는 클라이언트는 반드시 응답을 받아야 ..
CAP 정리(브루어의 정리)Consistency, Availability, Partition tolerance3가지를 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다는 정리. 그림에서 가운데 영역에 들어가는 시스템은 존재할 수 없다. 각각의 요소들의 정의를 알아보자consistency 일관성모든 노드가 같은 순간에 같은 데이터를 볼 수 있다모든 노드는 동일한 데이터를 동시에 본다. 추가 읽기를 허용하기 전에 여러 노드를 업데이트하여 일관성을 확보한다분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했느냐와 관계없이 언제나 같은 데이터를 보게 되어야 한다availability 가용성모든 요청이 성공 또는 실패 결과를 반환할 수 있다하나 이상의 노드가 작동 중지되어도 데이터를 요청하는 클라이언트는 반드시 응답을 받아야 ..
2024.06.29 -
MacOS에 Homebrew를 이용해서 mysql을 설치하는 방법을 정리해보겠습니다. mysql 버전 확인 brew search mysql (예시 화면에 mysql@5.7에 체크가 되어있는 이유는 현재 제 환경에 해당 버전이 설치되어있기 때문입니다) 화면에 나오는 버전 중에 원하는 버전 설치 mysql 설치 brew install mysql@5.7 버전 선택없이 mysql만 입력한다면, 최신의 stable 한 버전이 설치됩니다. 설치 후에 나오는 로그 내용을 잘 확인하고 필요한 명령어가 있다면, 시키는 대로 실행하면 됩니다. We've installed your MySQL database without a root password. To secure it run: mysql_secure_installat..
[Mac] brew mysql 설치MacOS에 Homebrew를 이용해서 mysql을 설치하는 방법을 정리해보겠습니다. mysql 버전 확인 brew search mysql (예시 화면에 mysql@5.7에 체크가 되어있는 이유는 현재 제 환경에 해당 버전이 설치되어있기 때문입니다) 화면에 나오는 버전 중에 원하는 버전 설치 mysql 설치 brew install mysql@5.7 버전 선택없이 mysql만 입력한다면, 최신의 stable 한 버전이 설치됩니다. 설치 후에 나오는 로그 내용을 잘 확인하고 필요한 명령어가 있다면, 시키는 대로 실행하면 됩니다. We've installed your MySQL database without a root password. To secure it run: mysql_secure_installat..
2022.08.20 -
파티션(Partition)은 MySQL 서버 입장에서 데이터를 별도의 테이블로 분리해서 저장하지만 사용자 입장에서는 여전히 하나의 테이블로 읽기와 쓰기를 할 수 있게 해주는 솔루션이다. -> 크기가 큰 테이블을 물리적으로 여러 개로 분할 해주는 기능 하나의 DBMS 서버에서 테이블을 분산하는 것, 원격 서버 간의 분산을 지원하는 것이 아니다. MySQL 5.1부터 제공되는 기능이다. 파티션을 사용하는 이유 1. 테이블의 사이즈가 커져, 인덱스의 크기도 커지는 경우 - 쿼리가 느려짐 파티션을 이용하여 테이블 분할 할 경우, 인덱스도 각각 생성되어 인덱스 크기가 작아짐 메모리에서 빠르게 쿼리 작업을 진행할 수 있음 2. 주기적으로 삭제 등의 작업이 이루어지는 히스토리 성 데이터의 효율적인 관리 히스토리성..
[MySQL] Partition 파티션 이란파티션(Partition)은 MySQL 서버 입장에서 데이터를 별도의 테이블로 분리해서 저장하지만 사용자 입장에서는 여전히 하나의 테이블로 읽기와 쓰기를 할 수 있게 해주는 솔루션이다. -> 크기가 큰 테이블을 물리적으로 여러 개로 분할 해주는 기능 하나의 DBMS 서버에서 테이블을 분산하는 것, 원격 서버 간의 분산을 지원하는 것이 아니다. MySQL 5.1부터 제공되는 기능이다. 파티션을 사용하는 이유 1. 테이블의 사이즈가 커져, 인덱스의 크기도 커지는 경우 - 쿼리가 느려짐 파티션을 이용하여 테이블 분할 할 경우, 인덱스도 각각 생성되어 인덱스 크기가 작아짐 메모리에서 빠르게 쿼리 작업을 진행할 수 있음 2. 주기적으로 삭제 등의 작업이 이루어지는 히스토리 성 데이터의 효율적인 관리 히스토리성..
2022.08.11 -
기존에 업무에서는 DB의 데이터 관리가 중요하지 않은 파트였는데, 현재는 대규모 트래픽과 데이터를 다루는 업무를 담당하게 되어서 DB의 데이터 관리가 중요하게 되었습니다. 그러다 보니 DB의 확장성에 대한 문제로 샤딩과 파티셔닝에 관련된 업무를 접하게 되었습니다. 이 참에 해당 내용에 대해서 정리하고 가면 좋을 거 같아 정리해 보겠습니다. 데이터 양이 많아지게 되면 하나의 DB 인스턴스로는 읽고 쓰기를 감당할 수 없습니다. 이 경우 여러 개의 DB 인스턴스가 필요합니다. 이때 확장성을 위해 샤딩, 파티셔닝을 필수적으로 고려하게 됩니다. 샤딩과 파티셔닝은 모두 큰 데이터셋을 여러 서브셋으로 나눈다는 공통점이 있습니다. 파티셔닝 ( Partitioning ) 하나의 인스턴스내에서 여러 테이블로 나누어 저장하..
[DB] 파티셔닝 샤딩 비교 ( Partitioning, Sharding )기존에 업무에서는 DB의 데이터 관리가 중요하지 않은 파트였는데, 현재는 대규모 트래픽과 데이터를 다루는 업무를 담당하게 되어서 DB의 데이터 관리가 중요하게 되었습니다. 그러다 보니 DB의 확장성에 대한 문제로 샤딩과 파티셔닝에 관련된 업무를 접하게 되었습니다. 이 참에 해당 내용에 대해서 정리하고 가면 좋을 거 같아 정리해 보겠습니다. 데이터 양이 많아지게 되면 하나의 DB 인스턴스로는 읽고 쓰기를 감당할 수 없습니다. 이 경우 여러 개의 DB 인스턴스가 필요합니다. 이때 확장성을 위해 샤딩, 파티셔닝을 필수적으로 고려하게 됩니다. 샤딩과 파티셔닝은 모두 큰 데이터셋을 여러 서브셋으로 나눈다는 공통점이 있습니다. 파티셔닝 ( Partitioning ) 하나의 인스턴스내에서 여러 테이블로 나누어 저장하..
2022.08.09