반응형
최근에 면접을 보게 되면서 아래와 같은 질문을 받게 되었다.
"업무를 진행하면서 여러 DB를 사용해보셨을 텐데, Oracle, MySQL, MSSQL의 차이점을 말씀해주실 수 있으실까요?"
해당 질문을 받고 머리가 하얘졌다. 간단하게는 비용적으로 차이가 있고, MSSQL은 보통 윈도우에서 사용된다는 정도만 생각하고 있었다.
이번 글에서는 자세히는 아니고, 내가 생각하는 위 DB 들을 비교하여 정리해보고자 한다.
1. Oracle, MySQL, MSSQL
- Oracle
- Oracle DB는 미국 오라클(Oracle)사의 관계형 데이터베이스 관리 시스템(RDBMS)의 이름이다.
- 현재 유닉스/리눅스 환경에서 가장 널리 사용되는 RDBMS이다.
- 검색이나 업데이트용 언어로는 국제표준화기구의 표준 구조화 조회 언어와 PL/SQL을 지원한다.
- MySQL, MSSQL 보다 대용량 정보관리 할 때 성능이 좋다. - MySQL
- MySQL DB는 세계에서 가장 많이 사용되는 오픈 소스의 관계형 데이터베이스 관리 시스템이다.
- 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템이다.
- 오픈 소스로 기본적으로는 무료로 사용할 수 있다. - MSSQL
- MSSQL DB는 마이크로소프트 SQL 서버(Microsoft SQL Server)는 마이크로소프트가 사이베이스(Sybase)를 기반으로 개발한 관계형 데이터베이스이다.
- 기업체에서 사용할 때 라이선스료를 지불하고 사용할 수 있다.
- 윈도우 개발환경에서 DB가 필요할 때 MSSQL을 사용한다.
2. 각각의 DB 비교
- Oracle vs MSSQL
- 데이터베이스의 생성
- Oracle : 하나의 서버에 하나의 데이터베이스 생성
- MSSQL : 하나의 서버에 여러 개의 데이터베이스 생성 - 데이터 타입 정의
- 일반적으로 정수형, 문자형, 날짜 형에서 차리를 가진다.
- 정수형
=> Oracle : Number
=> MSSQL : tinyint > smallint > int > bigint 로 나누어진다.
- 문자형
=> Oracle : varchar2(10), nvarchar2(10) 등 으로 정의
=> MSSQL : varchar(10), nvarchar(10) 등으로 정의
- 날짜형
=> Oracle : date
=> MSSQL : smalldatettime, datetime - 테이블 생성 시 자동 증가(auto increment)
- Oracle : 자동 증가 옵션이 없어, 직접 구현
- MSSQL : 테이블 생성 시 자동 증가 옵션(identity(1,1)) 사용
- 데이터베이스의 생성
- Oracle vs MySQL
- 구조적
- Oracle : DB 서버가 통합된 하나의 스토리지를 공유
- MySQL : DB 서버마다 독립적인 스토리지를 할당 - 조인(join) 방식
- Oracle : 중첩 루프 조인, 해시 조인, 소트 머지 조인 방식 제공
- MySQL : 중첩 루프 조인 방식 제공 - 확장성
- Oracle : 별도의 DBMS를 설치해 사용할 수 없음
- MySQL : 별도의 DBMS를 설치해 사용 할 수 있음 - 메모리 사용률
- Oracle : 메모리 사용률이 커서 최소 수백MB 이상이 되어야 설치 가능
- MySQL : 메모리 사용율이 낮아서 1MB 환경에서도 설치가 가능 - 구문
- Null 체크
- Oracle : NVL
- MySQL : IFNULL - 현재 날짜 및 시간
- Oracle : SYSDATE
- MySQL : DATE - 날짜 포맷 변환
- Oracle : TO_CHAR
- MySQL : DATE_FORMAT - 문자 합치기
- Oracle : ''
- MySQL : COMCAT - 페이징 처리
- Oracle : ROWNUM VETWEEN 0 AND 10
- MySQL : LIMIT
- Null 체크
- 구조적
3. 마무리
- 실무를 진행하면서 느꼈던 것은 대기업과 같은 곳(경제적 여유가 있는 곳..?)에서는 오라클을 선호하고, 비용을 아껴야 하는 중소기업들은 대체로 MySQL을 선호하였고, 윈도우 서버를 기반으로 한 곳에서는 MSSQL을 사용하는 등 3가지로 나뉘었었다.
- 대기업들이 Oracle을 쓰는 이유는 유료인 만큼 다양한 기능을 제공한다. 내장함수도 많고, 성능도 좋으며, 대용량 처리에서도 퍼포먼스가 좋다. 또한, 많이 대중화되어 높은 실력자가 많고, 많은 레퍼런스가 쌓이면서 각종 문제점 해결에도 쉽다.
- Oracle 과 MySQL 의 가장 큰 차이는 비용인 것 같다. 비용을 내는 만큼 많은 기능을 제공하고, 무료인 점에서 기능에 제한이 있다.
참고
- https://velog.io/@alicesykim95/Oracle%EA%B3%BC-MySQL%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90
반응형
'BackEnd > DataBase' 카테고리의 다른 글
[DB] DELETE 쿼리 시 Join 사용하기(MySQL) (0) | 2022.07.20 |
---|---|
[MySQL] on duplicate key update(Insert 시 값 존재하면 Update) (0) | 2022.07.01 |
[DB] Join(조인) 정리하기 (0) | 2022.05.07 |
[DB] Transaction(트랜잭션) 정리하기 (0) | 2022.05.07 |
[MySql] 데이터 정렬하기(한글 ->영문 순서) (0) | 2021.08.28 |