728x90
๐Big Tech์์๋ Mysql์ ์ฐ๋ ์ด์ ?
- ํธ๋์ ์ ์ ์ํด์.
- MySQL์ด ์๋์ ์ผ๋ก ํธ๋์ ์ ์ ํด์ค.
๐Database Lock ?
- MySQL์์ ์ ๊ณตํจ.
- ๊ธ๋ก๋ฒ ๋ฝ
- ์๋ฒ ์ ์ฒด์ ๋ฝ์ ๊ฒ. + DB ์ ์ญ์ ์ผ๋ก ๋ฝ์ ๊ฑธ์.
- FLUSH TABLES WITH READ LOCK; --> INSERT, UPDATE ์ ๊ฐ์ด Write ๊ฐ ์ ๋จ.
- ์๋ฅผ ๋ค์ด DB๋คํ ๋จ๋ ์ค์ธ๋ฐ ๊ทธ ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ, ์ถ๊ฐ ํ ์๋ ์๊ธฐ ๋๋ฌธ์.
- EXIT; ์ผ๋ก ๋ฝ์ ํ์ด์ฃผ๋ฉด ๊ทธ ๋, ์ ๋ ฅํด๋๋ write ๊ฐ ์๋ํจ.
- ํ
์ด๋ธ ๋ฝ
- LOCK TABLES INNODB READ;
- LOCK TABLES INNODB WRITE;
- UNLOCK TABLES; --> ๋ฝ์ ํ์.
- ๋ค์๋ ๋ฝ
- SELECT GET_LOCK('WANTED', 30);
- SELECT IS_FREE_LOCK('WANTED');
- SELECT RELEASE_LOCK('WANTED');
- DB ๋ณต์ ํ๊ฑฐ๋, ํน์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ.
- ๋ฉํ๋ฐ์ดํฐ๋ฝ
- Inno DB๊ฐ ์ ๊ณตํ๋ ๊ฒ.
- ๋ ์ฝ๋ ๋ฝ
- ํ ์ด๋ธ์ ์๋ row์ ๋ฝ์ ๊ฑธ์.
- ์ฝ์ ๋ ์์ ์ ๋ชปํ๊ฒ, ๋๋ ์์ ํ ๋ ์ฝ์ ์ ์๊ฒ. ๋ฝ์ ๊ฑธ์.
- EXPLAIN SELECT * FROM ํ ์ด๋ธ WHERE MONTH(์ ์ฒญ์ผ์) = 12; --> ์ฌ๊ธฐ์ select๋ก ๋์จ row์ ๋ํด์ ์ ๋ถ ๋ฝ์ ๊ฑฐ๋ ๊ฒ.
- ์ธ๋ฑ์ค๋ฅผ ์ ๊ฑธ์ด์ค์ผ, ๋ถํ์ํ ๋ฝ์ ์ ๊ฑธ ์ ์์.
- Auto Increment Lock
- SHOW CREATE TABLE auto;
- dead lock ์ด๋ผ๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ, Inno db๊ฐ ์๋์ผ๋ก Release๋ฅผ ์์ผ์ค๋ค.
๐ Isolation Level(๊ฒฉ๋ฆฌ์์ค) ? --> ์ฌ๊ธฐ์ ๊ฒฉ๋ฆฌ๋ :: ํ๋์ ํธ๋์ ์ ๊ณผ์ ๊ฒฉ๋ฆฌ
- Read Uncommited == Dirty Read
- ์์ง ์ปค๋ฐ์ ํ์ง ์์๋, ์ฝ์ ์ ์์. - ์ด์ฉ๋ฉด ๋ณ๊ฒฝ์ด ๋ ์๋ ์๋ ๊ฒ์ ๋ถ๋ฌ์ค๋๊น. ์ข ๋ฌธ์ ๊ฐ ๋ ์ ์์ง.
- SHOW GLOBAL VARIABLES LIKE 'autocommit'; --> ์ฐ์ตํด๋ณผ๋, autocommit ์ ๊บผ๋๊ณ ํด์ผํจ.
- SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITED; ์ผ๋ก ๊ฒฉ๋ฆฌ ์์ค ๋ณ๊ฒฝํจ.
- START TRANSACTION
๐ ?
- ใ ใ
๐ ?
- ใ ใ
์ถ์ฒ :
๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์ํ ๋ธ๋ก๊ทธ ์ ๋๋ค.
์ค๋ฅ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!
๊ฐ์ฌํฉ๋๋ค.

728x90
'DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB ์ง์] SELECT id, name FROM test_tb; ๊ฐ SELECT * FROM test_tb;๋ณด๋ค ์ข์ ์ด์ ? (0) | 2024.06.29 |
---|---|
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ง (0) | 2023.04.06 |
[DB] LOB ํ์ ๋ฐ์ดํฐ (0) | 2023.04.04 |
[ํ๋ฆฌ์จ๋ณด๋ฉ 2์ MySQL] 4ํ์ฐจ ๊ฐ์ (0) | 2023.02.20 |
[ํ๋ฆฌ์จ๋ณด๋ฉ 2์ MySQL] 1ํ์ฐจ (0) | 2023.02.08 |