๐ MariaDB ์๋ฒฝ ์ ๋ฆฌ & ์ค์ ํ์ฉ ๊ฐ์ด๋
๐น 1. MariaDB ๊ฐ์
๐ก MariaDB๋?
- MySQL๊ณผ์ ์ฐจ์ด์ ๋ฐ ๋ฐ์ ๊ณผ์
- MariaDB์ ์ฅ์ (์คํ์์ค, ์ฑ๋ฅ ํฅ์, ์ถ๊ฐ ๊ธฐ๋ฅ)
๐ MariaDB ์ค์น ๋ฐ ํ๊ฒฝ ์ค์
- MariaDB ์ค์น ๋ฐฉ๋ฒ (Windows, Linux, Mac)
- MariaDB ๊ธฐ๋ณธ ์ค์ ๋ฐ ์ ์ ๋ฐฉ๋ฒ
๐น 2. ๊ธฐ๋ณธ SQL ๋ช ๋ น์ด (DQL - ๋ฐ์ดํฐ ์กฐํ)
๐ ๊ธฐ๋ณธ SELECT ๋ฌธ
- SELECT์ FROM์ ์ญํ
- WHERE ์ ๋ก ์ํ๋ ๋ฐ์ดํฐ ์ฐพ๊ธฐ
๐ ๋ฐ์ดํฐ ๊ทธ๋ฃนํ & ์ ๋ ฌ
- GROUP BY์ HAVING์ ํ์ฉํ ๋ฐ์ดํฐ ์์ฝ
- ORDER BY๋ก ์ ๋ ฌ๋ ๋ฐ์ดํฐ ์ถ๋ ฅ
- LIMIT๊ณผ DISTINCT๋ฅผ ํ์ฉํ ํจ์จ์ ์กฐํ
๐น 3. ๋ฐ์ดํฐ ์ ์์ด (DDL)
๐ ํ ์ด๋ธ ๋ฐ ์คํค๋ง ๊ด๋ฆฌ
- CREATE, ALTER, DROP ๋ช ๋ น์ด
- ์ ์ฝ์กฐ๊ฑด (Primary Key, Foreign Key, UNIQUE, CHECK, DEFAULT)
- ํ ์ด๋ธ ์ค๊ณ ์์น ๋ฐ Best Practice
๐ ๊ณ ๊ธ ๊ฐ๋
- ํํฐ์ ๋๊ณผ ์ค๋ฉ ๊ธฐ๋ฒ
- ํ ์ด๋ธ์คํ์ด์ค ๊ด๋ฆฌ ๋ฐ ์ฑ๋ฅ ์ต์ ํ
๐น 4. ๋ฐ์ดํฐ ์กฐ์์ด (DML)
โ๏ธ ๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ์ญ์
- INSERT, UPDATE, DELETE ์ฌํ
- AUTO_INCREMENT์ SEQUENCE ํ์ฉ
๐ ํธ๋์ญ์ ๊ณผ ์ผ๊ด์ฑ ์ ์ง
- COMMIT, ROLLBACK, SAVEPOINT ๊ฐ๋
- ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฒ
๐น 5. ๋ฐ์ดํฐ ์ ์ด์ด (DCL)
๐ ์ฌ์ฉ์ ๋ฐ ๊ถํ ๊ด๋ฆฌ
- GRANT, REVOKE๋ฅผ ํ์ฉํ ๊ถํ ๋ถ์ฌ ๋ฐ ํ์
- ์ฌ์ฉ์ ๊ณ์ ์์ฑ ๋ฐ ์ญ์
- ์ญํ (Role) ๋ฐ ๋ณด์ ๊ด๋ฆฌ
๐ ๋ณด์ ๋ฐ ๊ฐ์ฌ
- ๋ฐ์ดํฐ ์ํธํ ๋ฐฉ๋ฒ
- ๊ฐ์ฌ ๊ธฐ๋ฅ์ ํ์ฉํ ๋ก๊ทธ ๊ธฐ๋ก
๐น 6. ์๋ธ์ฟผ๋ฆฌ (Subquery)
๐ ์๋ธ์ฟผ๋ฆฌ ํ์ฉํ๊ธฐ
- WHERE, SELECT, FROM ์ ์์ ์ฌ์ฉ
- EXISTS์ NOT EXISTS๋ฅผ ํ์ฉํ ์กฐ๊ฑด ํํฐ๋ง
- ์๊ด ์๋ธ์ฟผ๋ฆฌ(Correlated Subquery) ๊ฐ๋ ๋ฐ ์ค์ ์์
๐น 7. JOIN (์กฐ์ธ)
๐ ํ ์ด๋ธ ๊ฐ ๋ฐ์ดํฐ ์ฐ๊ฒฐ
- INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
- SELF JOIN, CROSS JOIN, NATURAL JOIN
๐ ์กฐ์ธ ์ฑ๋ฅ ์ต์ ํ
- ์ธ๋ฑ์ค ํ์ฉํ ์กฐ์ธ ์ฑ๋ฅ ํฅ์
- ์ฟผ๋ฆฌ ์คํ ๊ณํ ๋ถ์ (EXPLAIN ํ์ฉ)
๐น 8. ํจ์ (Functions)
๐งฎ ๋ค์ํ SQL ํจ์
- ๋ฌธ์์ด ํจ์, ์ํ ํจ์, ๋ ์ง ๋ฐ ์๊ฐ ํจ์
- ๋ ผ๋ฆฌ ํจ์ ๋ฐ ์กฐ๊ฑด๋ฌธ ํ์ฉ
๐ ์๋์ฐ ํจ์ ํ์ฉ
- ROW_NUMBER, RANK, DENSE_RANK, NTILE
- ๋ฐ์ดํฐ ๋ถ์์ ์ํ OLAP ํจ์ ์ ์ฉ
๐น 9. ๋ทฐ (VIEW)
๐ผ ๋ทฐ(View) ๊ฐ๋ ๋ฐ ํ์ฉ
- VIEW์ ํ ์ด๋ธ์ ์ฐจ์ด์
- VIEW์ ์ฅ์ ๊ณผ ๋จ์
- MATERIALIZED VIEW ๊ฐ๋ ๋ฐ ์ฑ๋ฅ ํ์ฉ๋ฒ
๐น 10. ํธ๋์ญ์ ๋ฐ ๋์์ฑ ์ ์ด
๐ ์์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ACID ์์น ์ดํด
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค (READ COMMITTED, REPEATABLE READ ๋ฑ)
- MVCC(๋ค์ค ๋ฒ์ ๋์์ฑ ์ ์ด) ๊ฐ๋
๐ ๋ฐ๋๋ฝ(Deadlock) ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ ๊ธ(Lock) ๋ฉ์ปค๋์ฆ
- ์ฟผ๋ฆฌ ํ๋์ ํตํ ๋์์ฑ ์ต์ ํ
๐น 11. ์ ์ฅ ํ๋ก์์ ๋ฐ ํธ๋ฆฌ๊ฑฐ
โ๏ธ ์๋ํ๋ SQL ์คํ
- ์ ์ฅ ํ๋ก์์ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ
- ํธ๋ฆฌ๊ฑฐ(Trigger) ๊ฐ๋ ๋ฐ ํ์ฉ
- ์ด๋ฒคํธ ์ค์ผ์ค๋ฌ ํ์ฉ
- ๋์ SQL ๋ฐ ์ปค์(Cursor) ๊ฐ๋
๐น 12. ์ฑ๋ฅ ์ต์ ํ ๋ฐ ์ธ๋ฑ์ค
๐ ๋น ๋ฅธ ๋ฐ์ดํฐ ๊ฒ์์ ์ํ ์ธ๋ฑ์ค
- PRIMARY, UNIQUE, FULLTEXT, SPATIAL ์ธ๋ฑ์ค
- ์คํ ๊ณํ (EXPLAIN, ANALYZE) ๋ถ์
๐ ์ฟผ๋ฆฌ ์ต์ ํ ๊ธฐ๋ฒ
- ์ฟผ๋ฆฌ ๋ฆฌํฉํ ๋ง์ ํตํ ์๋ ํฅ์
- ์บ์ ๋ฐ ์ฑ๋ฅ ํ๋ ๊ธฐ๋ฒ
๐น 13. ๋ฐฑ์ ๋ฐ ๋ณต๊ตฌ
๐พ ๋ฐ์ดํฐ ๋ณดํธ ๋ฐ ๋ณต๊ตฌ
- mysqldump, XtraBackup์ ํ์ฉํ ๋ฐฑ์
- PITR(Point-in-Time Recovery) ๊ฐ๋
- ๋ก๊ทธ ํ์ผ์ ํ์ฉํ ๋ฐ์ดํฐ ๋ณต๊ตฌ ๋ฐ ์ฅ์ ๋ณต๊ตฌ ์ ๋ต
๐น 14. ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐ ์ ์ง๋ณด์
๐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง ๋ฐฉ๋ฒ
- ์ฃผ๊ธฐ์ ์ธ ๋ฐ์ดํฐ ์์นด์ด๋น ๋ฐ ์ ๋ฆฌ
- ์ฅ์ ๋ณต๊ตฌ ๋ฐ ๋ณต์ ์ ๋ต
- ๋๊ท๋ชจ ์์คํ ์์์ ์ฑ๋ฅ ๊ด๋ฆฌ
๐น 15. ์ค์ ์์ ๋ฐ ํ์ฉ ์ฌ๋ก
๐ MariaDB ์ค๋ฌด ํ์ฉ
- ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ๋ก๊ทธ ๋ฐ์ดํฐ ๋ถ์
- ์ค๋ฌด์์ ๋ง์ด ์ฐ์ด๋ SQL ํจํด
- ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ๊ตฌ์ถ ๊ฐ๋
๐น 16. NoSQL๊ณผ์ ๋น๊ต ๋ฐ ํ์ฅ์ฑ
๐ MariaDB์ NoSQL ๋น๊ต
- MariaDB์์ JSON ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- MariaDB vs MongoDB vs Redis
- ํ์ด๋ธ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฉ ๋ฐฉ์