728x90
๋ฐ์ํ
1์ฅ MySQL๊ณผ MariaDB ๊ฐ์
์ค๋ผํด๊ณผ MySQL๋น๊ต(MariaDB ํฌํจ)
MySQL(MariaDB)
- ์คํ ๋ฆฌ์ง ๊ตฌ์กฐ
- ๋ฌผ๋ฆฌ์ ์ธ DB ์๋ฒ๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ์คํ ๋ฆฌ์ง๋ฅผ ํ ๋น(Shared Nothing)
- ์ด์คํ๊ตฌ์กฐ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ๊ตฌ์กฐ๊ฐ ๋๋ถ๋ถ.
- ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฌ๋ฌ๋์ DB์๋ฒ์ ์ ์ํ๋๋ผ๋ ๋์ผํ ๊ตฌ๋ฌธ์ด ์ฒ๋ฆฌ๋์ง ์์ ์ ์์ผ๋ฉฐ, DB ์๋ฒ ๋ง๋ค ๊ฐ์์ ์ญํ ์ด ๋ถ์ฌ๋ ์ ์๋ค.
- ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ
- ๋๋ถ๋ถ ์ค์ฒฉ ๋ฃจํ ์กฐ์ธ(Nested Loop Join)
- ์ต๊ทผ 8.0.18 ๋ฒ์ ๋ถํฐ ์ ์ฝ์ ์ผ๋ก ํด์ฌ ์กฐ์ธ ์ ๊ณต
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ฅ
- ์ฌ์์ด ๋ฎ์ ์ปดํจํฐ ํ๊ฒฝ์์ ์ฌ์ฉ ๊ฐ๋ฅ.
- ์ฝ 1MB ๋ฉ๋ชจ๋ฆฌ ํ๊ฒฝ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ.
- ์ค๋ฒํค๋ ์์.
Oracle
- ์คํ ๋ฆฌ์ง ๊ตฌ์กฐ
- ํตํฉ๋ ์คํ ๋ฆฌ์ง ํ๋๋ฅผ ๊ณต์ (Shared Everything)ํ์ฌ ์ฌ์ฉ
- ๊ณต์ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ด๋ DB ์๋ฒ์ ์ ์ํ์ฌ SQL๋ฌธ์ ์ํํ๋๋ผ๋ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ & ์ฒ๋ฆฌ
- ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ
- ์ค์ฒฉ ๋ฃจํ ์กฐ์ธ(Nested Loop Join), ์ ๋ ฌ ๋ณํฉ ์กฐ์ธ(Sort Merge Join), ํด์ฌ ์กฐ์ธ(Hash Join)
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ฅ
- ๋น๊ต์ ๋์ ์ฌ์ ์๋ฐฑMB์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ํ์.
๊ตฌ๋ฌธ ์ฐจ์ด
Null ๋์ฒด
-- MySQL
IFNULL(COLUMN_NAME, '๋์ฒด๊ฐ')
-- Oracle
NVL(COLUMN_NAME, 'N/A')
ํ์ด์ง ์ฒ๋ฆฌ
-- MySQL
LIMIT ์ซ์
-- Oracle
ROWNUM <= ์ซ์
ํ์ฌ ๋ ์ง
-- MySQL
NOW()
-- Oracle
SYSDATE
์กฐ๊ฑด๋ฌธ
-- MySQL
IF (์กฐ๊ฑด์, '์ฐธ๊ฐ', '๊ฑฐ์ง๊ฐ')
-- Oracle
DECODE(COLUMN_NAME, '๊ฐ', '์ฐธ๊ฐ', '๊ฑฐ์ง๊ฐ')
-- ๊ณตํต
CASE
WHEN ์กฐ๊ฑด์
THEN ๊ฒฐ๊ณผ๊ฐ
...
END
๋ ์ง ํ์
-- MySQL
DATE_FORMAT(๋ ์ง Column, '%Y-%m-%d %H%i%s')
-- Oracle
TO_CHAR(๋ ์ง Column, 'YYYYMMDD HH24MISS')
์๋ ์ฆ๊ฐ๊ฐ
์ค๋ผํด์ ๊ฒฝ์ฐ Sequence ๋ผ๋ Object๋ฅผ ํ์ฉํ๋ค.
๋จผ์ CREATE SEQUENCE ๋ฌธ์ผ๋ก ์ํ์ค ์ค๋ธ์ ํธ๋ฅผ ์์ฑํ ๋ค, ํด๋น ์ํ์ค๋ช ์ผ๋ก ํจ์๋ฅผ ํธ์ถํ์ฌ ์ ๊ท ์ซ์๋ฅผ์ฑ๋ฒํ๋ ๋ฐฉ์์ด๋ค.
์ด๋ SELECT ์ํ์ค๋ช .nextval FROM dual ๊ตฌ๋ฌธ์ผ๋ก ์ ๊ท ๋ฐ์ดํฐ์ ์ํ์ค ์ซ์๋ฅผ ๊ฐ์ ธ์จ๋ค.
-- MySQL
AUTO_INCREMENT
CREATE TABLE(
seq INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(20) NOT NULL
)
-- Oracle
CREATE SEQUENCE [์ํ์ค๋ช
]
INCREMENT BY [์ฆ๊ฐ์ซ์]
START WITH [์์์ซ์]
NOMINVALUE OR MINVALUE [์ต์๊ฐ]
NOMAXVALUE OR MAXVALUE [์ต๋๊ฐ]
CYCLE OR NOCYCLE
CACHE OR NOCACHE
CREATE SEQUENCE ORACLE_SEQ_SAMPLE
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALUE 999999999
CYCLE
CACHE;
-- ๋ค์ ๊ฐ ์ฑ๋ฒ ๋ฌธ๋ฒ
SELECT ์ํ์ค๋ช
.NEXTVAL FROM dual;
SELECT ORACLE_SEQ_SAMPLE.NEXTVAL FROM DUAL;
๋ฌธ์ ๊ฒฐํฉ
-- MySQL
CONCAT(์ด๊ฐ ๋๋ ๋ฌธ์์ด, ์ด๊ฐ ๋๋ ๋ฌธ์์ด)
-- Oracle
1. ์ด๊ฐ ๋๋ ๋ฌธ์์ด || ์ด๊ฐ ๋๋ ๋ฌธ์์ด
2. CONCAT(์ด๊ฐ ๋๋ ๋ฌธ์์ด, ์ด๊ฐ ๋๋ ๋ฌธ์์ด)
๋ฌธ์ ์ถ์ถ
-- MySQL
SUBSTRING(์ด๊ฐ ๋๋ ๋ฌธ์์ด, ์์ ์์น, ์ถ์ถํ๋ ค๋ ๋ฌธ์ ๊ฐ์)
-- Oracle
SUBSTR(์ด๊ฐ ๋๋ ๋ฌธ์์ด, ์์ ์์น, ์ถ์ถํ๋ ค๋ ๋ฌธ์ ๊ฐ์)
728x90
๋ฐ์ํ