구조적 차이
오라클 : 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 |