• https://eng.uber.com/mysql-migration/
  • Postgres의 단점을 매우 잘 정리한 글.
  • 사실 이 글은 아래 그림 하나로 요약할 수 있다.
  • 2016/160913-14-48-36.jpg
  • 읽은 후 쓴 내 메모를 최대한 짧게 요약:
항목 PostgreSQL MySQL (InnoDB)
secondary index directly indirectly
secondary key lookup 유리 불리 (index 2개를 찾아야 하니)
row update 시 모든 index 업데이트 해당 row의 index만 업데이트
replication WAL을 보냄 commands를 보냄
MVCC row를 항상 씀 변경전 row를 rollback segment에 복사.
cache OS의 page cache buffer pool
connection conn 당 process 생성 conn 당 thread 생성
upgrade downtime 필요. downtime 없이 가능.

덧,

  • 사실 이 글을 보면 pg의 단점만 썼는데.
    • pg가 tuple 방식의 디자인을 선택한건 tradeoff.
    • 장점도 많다.
    • 그래도 conn 당 process 를 생성하는건 어떤 장점이 있는지 아직 이해가 안 됨.
      • 내가 모르는 이유가 있을지 모르지만.
      • 어떤 기술을 비판하는 일은, 무지가 원인인 경우가 많아 조심.