<TIL> 139. PostgreSQL vs MySQL

YUJIN LEE·2023년 8월 8일
0

개발log

목록 보기
131/149

회사에서 현재 사용하는 PostgreSQL과, 내가 사용했던 MySQL의 차이점을 알아보고자한다.

PostgreSQL vs MySQL

PostgreSQL은 복잡한 쿼리와 대규모 데이터베이스를 다룸

MySQL은 설치와 관리가 비교적 쉽고, 빠르고, 신뢰할 수 있고, 쉽게 파악 가능한 간단한 DB

PostgreSQL은 테이블 상속, 함수 오버로딩 등의 기능을 갖춘 객체 관계형 데이터베이스(ORDBMS)
MySQL은 순수 관계형 데이터베이스(RDBMS)

MySQL의 경우 웹사이트와 온라인 트랜잭션에 적합, 기능이 많지 않아 속도와 안정성에 중점
PostgreSQL은 복잡한 대규모 분석 프로세스에 적합, 많은 기능 보유, ACID 호환, 높은 동시성

둘 다 NoSQL 제공

속도?
대량의 데이터 집합, 복잡한 쿼리, 읽기=쓰기 작업을 처리할 때 -> PostgreSQL이 빠름
읽기 전용 명령 -> MySQL이 더빠름

MySQL의 인덱스 유형

  • INDEX, FULLTEXT, PRIMARY KEY, UNIQUE 등 B-tree에 저장된 인덱스
  • 공간 데이터 형식에서 찾을 수 있는 인덱스 등 R-tree에 저장된 인덱스
  • FULLTEXT 인덱스 사용 시 해시 인덱스 및 역 리스트

PostgreSQL 인덱스 유형

  • 해시 인덱스 및 B-tree 인덱스
  • 테이블 일부의 정보만 정리하는 부분 인덱스
  • 열 값과 반대로 수식 함수의 결과로 인덱스를 만드는 수식 인덱스

코딩 차이점

대소문자 구분

MySQL은 대소문자 구분 안함.
PostgreSQL은 대소문자 구분.

기본 문자 집합 및 문자열

특정 MySQL 버전의 경우 문자 집합과 문자열을 UTF-8로 변환.
PostgreSQL - 문자 집합과 문자열을 UTF-8 변환 필요 X, UTF-8 구문은 PostgreSQL에서 허용X

결론

복잡한 쿼리와 대규모 데이터베이스를 다룰 수 있는 기능이 풍부한 데이터베이스가 필요
-> PostgreSQL

설치와 관리가 비교적 쉽고, 빠르고 안정적이며, 파악이 어렵지 않은 간단한 데이터베이스
-> MySQL

객체관계 데이터베이스 - ORDBMS?

object-relational database; ORD, ORDB) or 객체관계형 데이터베이스 관리 시스템(object-relational database management system; ORDBBMS)

ORDBMS는 오브젝트 지향 모델(OODBMS)과 관계형 모델(RDBMS) 사이의 하이브리드 인 데이터베이스 관리 시스템.
객체 지향의 사고방식을 채용.
소프트웨어 개발자가 스스로 데이터 형식과 방법을 자유롭게 정의해 데이터베이스 개발

ORDBMS의 기술의 목표?
소프트웨어 개발자에게 문제 영역을 생각하는 수준까지 데이터베이스 설계의 추상화 수준 높임.

특징?

  • 사용자 정의 타입 지원
  • 참조 타입 지원
  • 중첩된 테이블 - 테이블을 구성하는 레코드 상의 하나의 항목이 또 다른 레코드의 집합(테이블)으로 구성되는 복합 구조를 모델링 하는 것 가능.
  • 대단위 객체 지원 - LOB(Large OBject; 대단위 객체)타입이 기본 타입으로 지원
profile
인정받는 개발자가 되고싶습니다.

0개의 댓글