DB/SQL

ORACLE과 MYSQL의 차이점

호두밥 2021. 10. 7. 02:05

구조적 차이

오라클 : DB 서버가 통합된 하나의 스토리지를 공유하는 방식

MYSQL : DB 서버마다 독립적인 스토리지를 할당하는 방식

 

조인 방식의 차이

오라클 : 중첩 루프 조인, 해시 조인, 소트 머지 조인 방식을 제공함.

MYSQL : 중첩 루프 조인 방식을 제공함.

 

확장성의 차이

오라클 : 별도의 DBMS을 설치해 사용할 수 없음

MYSQL : 별도의 DBMS을 설치해 사용할 수 있음

 

메모리 사용율의 차이

오라클 : 메모리 사용율이 커서 최소 수백MB 이상이 되어야 설치 가능함.

MYSQL : 메모리 사용율이 낮아서 1MB 환경에서도 설치가 가능함.

 

파티셔닝

오라클 : Local Partion Index, Global Partion Index를 지원

MYSQL : Local Partion index만 지원

 

힌트 방식

오라클 : 힌트에 문법적 오류가 있으면 힌트를 무시하고 쿼리를 수행한다.

MYSQL : 힌트에 문법적 오류가 있으면 오류를 발생시킨다.

 

SQL 구문의 차이

NULL 대체

[오라클]

NVL(열명, '대체값')

[MYSQL]

IFNULL(열명, '대체값')

SELECT 결과 갯수 제한(페이징처리)

[오라클]

ROWNUM <= 숫자

[MYSQL]

LIMIT 시작위치, 가져올 데이터 건수

가상테이블 DUAL

[오라클]

SELECT 1 FROM DUAL;

[MYSQL]

SELECT 1;

 

현재날짜

[오라클]

SELECT SYSDATE FROM DUAL;

[MYSQL]

SELECT NOW();

조건식 (IF)

[오라클]

//칼럼이 값과 일치하면 TRUE, 일치하지 않으면 FALSE
SELECT DECODE(칼럼, 값, TRUE일때 출력할 값, FALSE일때 출력할 값) FROM TABLE;

[MYSQL]

SELECT IFNULL(조건식, TRUE일때 값, FALSE일때 값) FROM TABLE;

날짜 형식

[오라클]

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;

[MYSQL]

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');

 

시퀀스

[오라클]

CREATE SEQUENCE [시퀀스명]
INCREMENT BY [증감숫자]
START WITH [시작숫자]
NOMINVALUE / MINVALUE [최소값]
NOMINVALUE / MINVALUE [최소값]
CYCLE / NOCYCLE
CACHE / NOCACHE
INSERT TABLE
(SEQ_NBR)
VALUES
(시퀀스명.NEXTVAL)
;

[MYSQL]

CREATE TABLE
( SEQ_NBR INT NOT NULL AUTO_INCREMENT PRIMARY KEY);

* INSERT 시 자동으로 값이 생성되어 들어감.

 

문자열 합치기

[오라클]

SELECT "A" || "B" FROM DUAL;
SELECT CONCAT("A", "B") FROM DUAL;

[MYSQL]

SELECT CONCAT("A", "B") FROM DUAL;

문자열 자르기

[오라클]

SELECT SUBSTR( 문자열/칼럼, 시작위치, 잘라낼 문자열의 길이) FROM DUAL;

[MYSQL]

SELECT SUBSTRING(문자열/칼럼, 시작위치, 잘라낼 문자열의 길이);

 

출처

양바른, 업무에 바로 쓰는 SQL 튜닝, 한빛미디어

 

 

 

 

'DB > SQL' 카테고리의 다른 글

MySQL 쿼리 정리  (0) 2021.10.10
MYSQL SELECT 튜닝  (0) 2021.10.10
MySQL 데이터 타입 Data Types  (0) 2021.10.10
MYSQL 실행계획 EXPLAIN  (0) 2021.10.08
MYSQL 힌트  (0) 2021.10.07