Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- spring
- 객체 지향 설계와 스프링
- 싱글톤 컨테이너
- 20055 컨베이어 벨트 위의 로봇
- 백준 20055 컨베이어 벨트 위의 로봇
- 백준 13460 Python
- 고급매핑
- 20055
- Kotlin in action 10장
- kotlin in action 정리
- 13460 구슬탈출 2
- Kotlin in action 5장
- 코틀린
- KotlinInAction
- 스프링 핵심 원리 - 기본편
- 코틸린인액션
- Kotlin in action 3장
- Kotlin In Action
- 스프링 핵심 원리 이해
- 기능개발 python
- 백준
- Kotlin
- 자바 ORM 표준 JPA 프로그래밍 7장
- 스프링 핵심 원리
- Python
- 7장 고급매핑
- 컨베이어 벨트 위의 로봇 Python
- 코틀린인액션
- 스프링 컨테이너와 스프링 빈
- Kotlin in action 6장
Archives
- Today
- Total
기록하는 습관
DB 리서치 (S3, Mongo, Mysql - InnoDB, MyISAM, heap) 본문
S3
##1. S3 특징
- Simple Storage Service의 약자로 파일 서버의 역할을 하는 서비스
- S3 자체가 수천 대 이상의 매우 성능이 좋은 웹 서버로 구성되어 있어서 EC2와 EBS로 구축했을 때 처럼 Auto Scaling이나 Load Balancing에 신경쓰지 않아도 된다.
- 웹하드 서비스와 비슷하지만, 별도의 클라이언트 설치나 ActiveX를 통하지 않고 HTTP 프로토콜로 파일 업로드/다운로드 처리
- 최소 1바이트에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있으며, 저장할 수 있는 파일의 수가 제한이 없다.
- 파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다.
- 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다.
##2. datacenter에서 사용한 이유
- 큰 용량, 제한 없는 파일 개수, 성능 고려를 했을 때 데이터를 쉽게 업로드 / 다운로드 할 수 있는 파일서버이기 때문.
##3. S3 기능
- 쿼리 지원
- S3 Select는 쿼리 성능을 최대 400% 높이고 쿼리 비용을 80%까지 절감할 수 있는 S3 기능.
- 최대 5테라바이트까지 허용하는 전체 객체 대신 (단순 SQL 표현식을 사용하여) 객체 데이터의 하위 집합을 검색하는 방식으로 작동
- 데이터 처리
- AWS DataSync는 수백 TB 용량과 수백만 개의 파일을 오픈 소스 도구보다 최대 10배 빠른 속도로 Amazon S3로 효율적으로 간단히 전송할 수 있게 해줌.
- 참고: https://aws.amazon.com/ko/s3/features/
MongoDB
##1. 특징
- 다양한 데이터 타입 핸들링 가능하고 데이터 구조가 유연함
- 정확한 데이터 구조를 알 수 없거나 변경 / 확장 될 수 있는 경우
- 읽기(read)처리를 자주하지만, 데이터를 자주 변경(update)하지 않는 경우에 사용하면 좋음.
- 한번의 변경으로 수십 개의 문서를 업데이트 할 필요가 없는 경우
- 데이터베이스를 수평으로 확장해야 하는 경우 사용하면 좋음
- 막대한 양의 데이터를 다뤄야 하는 경우
Mysql
##1. InnoDB
- 특징
- 테이블과 인덱스를 테이블 스페이스에 저장하고 테이블 스페이스는 몇 개의 서버 파일 / 디스크 파티션으로 구성.
- row level locking 지원
- 장점
- 트랜잭션 처리, 대용량 데이터를 처리할 때 효율적.
##2. MyISAM
- 특징
- 트랜잭션을 지원하지 않음.
- Read에 최적화 되어 있음
- 테이블과 인덱스를 각각 분리된 파일로 관리함.
- 장점
- 항상 테이블에 row count를 가지고 있어, select count(*) 명령시 빠르고, select 명령에도 빠름
- full-text index를 지원하기 때문에 Read Only 기능이 많은 서비스일수록 MyISAM이 효율적
- 단점
- row level locking 지원 하지 않음 → select/insert/update/delete 명령시 해당 테이블 전체에 locking이 걸림.
- row 수가 많으면 crud 속도는 엄청 느려짐.
##3. heap(Memory)
- 특징
- 트랜잭션을 지원하지 않음.
- table-level locking 지원
- 장점
- 데이터나 인덱스를 메모리에 저장하기 때문에 쿼리가 disk IO를 기다릴 필요가 없어 속도가 빠름.
- 단점
- 서버가 다운되거나 재시작 되면 테이블 전체가 날아감.
- 테이블 데이터는 날아가도, 구조는 그대로 있기 때문에 서버 재가동 후 S3에서 데이터 재적재 필요.
- 서버가 다운되거나 재시작 되면 테이블 전체가 날아감.
- 사용 예시
- 조회용 / 매핑용 테이블
- 주기적으로 집계되는 데이터의 결과 캐시용
- 데이터 분석 시 중간 결과 저장용
참고
'개발 > Research' 카테고리의 다른 글
Spark, Hadoop (0) | 2022.07.12 |
---|---|
offset, cursor 기반 pagination (0) | 2022.07.12 |
lock 오픈소스 (ShedLock, dLock) (0) | 2022.07.12 |
AWS lambda (s3) (0) | 2022.07.12 |
Redis, Redisson, Jedis (0) | 2022.07.12 |
Comments