유튜브에서 외국 IT기술채널을 몇개만 봤을 뿐인데 알고리즘이 자꾸 추천해서 보게된 영상
영상은 업로드한지 몇 달 안된것 같지만 DB변환은 이미 5년전에 완료된듯하다.
www.youtube.com/watch?v=_E43l5EbNI4
구글링해보니 우버 기술블로그 발견
eng.uber.com/postgres-to-mysql-migration/
Uber 에서는 약5년전 기존 Postgres 를 사용해 오다 MySQL 로 변환하였고 해당 이유를 블로그에 자세히 작성하였다.
Uber 에서 운영한 Postges 버전은 9.2 인듯 하다.
운영시 Postgres 의 단점
- 쓰기에 관련된 비효율적인 아키덱쳐
- 비효율적인 데이터 복제
- 테이블 손상문제
- 잘못된 복제 MVCC 지원
- 최신버전으로의 업그레이드 어려움.
1. Postgres 의 핵심 아키텍쳐는 변경 불가능한 Row Data(Record 느낌)
- Postgres 용어로 튜플(tuples)
- 튜플로 인한 인덱스 용량의 증가 및 속도 저하 이슈 발생에 대한 설명
2. WAL(Write-Ahead Logging) 아키덱쳐 설명
3. Write Amplification - 쓰기작업에 대한 비효율성
- 데이터 변경 작업시 튜플에 대한 작업, 모든 인덱스에 대한 정보수정 과정이 필요
- WAL 반영에 대한 비효율성에 대한 설명
4. Replication - 복제작업시 복제 아키덱쳐에 따른 WAL 용량의 비대함 설명
5. Data Corruption - 데이터 손상이 관련된 postgres 버그 발생 설명
- Postges 9.2 만 존재하는 버그이며 이후 버전에서는 해결
6. Replica MVCC - 진정한 복제 MVCC 기능 미존재에 대한 설명
7. Postgres 업그레이드가 힘들다는 설명
- 업그레이드시 서비스 중단
- 업그레이드시 시간이 많이 걸리는 문제
MySQL 의 아키덱쳐
1. InnoDB 에 대한 설명
- InnoDB는 데이터 변경작업시 해당 인덱스만 Update
2. Replication - 복제에 대한 장점
- 다양한 복제 모드 제공
- MySQL 복제 바이너리 로그가 Postgres WAL 보다 더 효율적
3. MySQL 아키텍쳐가 좋다는 어필(!?)
4. The Buffer Pool - 버퍼풀에 대한 장점
5. Connection Handling - 연결처리에 대한 장점
- Postgres 는 연결시 프로세스를 생성하는 방식인 반면 MySQL은 스레드를 생성하여 많은 연결이 가능하며 오버헤드가 적다는 장점
- 10,000개 연결도 무리없이 가능
## 결론
Uber 에서는 MySQL이 Postgres 보다 장점이 많아 MySQL로 이동하였고 잘 운영중이다 라는 설명
<끄읕>
'Database' 카테고리의 다른 글
[Netezza] 엔터값(줄바꿈) 지우는 방법 (0) | 2021.10.07 |
---|---|
[Netezza] 데이터 Unload 수행시 - The update count exceeded Integer.MAX_VALUE. 에러발생 (0) | 2021.09.16 |
DBeaver 버전정보 규칙변경(7.3.5 -> 21.x.x) (0) | 2021.06.17 |
[Greenplum/Postgresql] DO SQL명령어 사용법 (0) | 2021.06.14 |
DB 관리툴 - dbeaver 설치 및 간단 사용기(윈도우 10) (2) | 2021.02.07 |