DB

[ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ 2์›” Mysql] 2ํšŒ์ฐจ ๊ฐ•์˜.

๋ฐฐ๊ณ ํŒŒ์š” 2023. 2. 10. 23:06
728x90

๐Ÿ“Big Tech์—์„œ๋Š” Mysql์„ ์“ฐ๋Š” ์ด์œ  

  • ํŠธ๋žœ์ ์…˜์„ ์œ„ํ•ด์„œ.
  • MySQL์ด ์ž๋™์ ์œผ๋กœ ํŠธ๋ž™์ ์…˜์„ ํ•ด์คŒ.

 

 

 

๐Ÿ“Database Lock ?

- MySQL์—์„œ ์ œ๊ณตํ•จ.

  1. ๊ธ€๋กœ๋ฒŒ ๋ฝ 
    • ์„œ๋ฒ„ ์ „์ฒด์— ๋ฝ์„ ๊ฒ€.  + DB ์ „์—ญ์ ์œผ๋กœ ๋ฝ์„ ๊ฑธ์Œ.
    • FLUSH TABLES WITH READ LOCK; --> INSERT, UPDATE ์™€ ๊ฐ™์ด Write ๊ฐ€ ์•ˆ ๋จ.
      • ์˜ˆ๋ฅผ ๋“ค์–ด DB๋คํ”„ ๋œจ๋Š” ์ค‘์ธ๋ฐ ๊ทธ ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—. 
    • EXIT; ์œผ๋กœ ๋ฝ์„ ํ’€์–ด์ฃผ๋ฉด ๊ทธ ๋•Œ, ์ž…๋ ฅํ•ด๋’€๋˜ write ๊ฐ€ ์ž‘๋™ํ•จ.
  2. ํ…Œ์ด๋ธ” ๋ฝ
    • LOCK TABLES INNODB READ;
    • LOCK TABLES INNODB WRITE;
    • UNLOCK TABLES;  --> ๋ฝ์„ ํ’€์Œ.
  3. ๋„ค์ž„๋“œ ๋ฝ
    • SELECT GET_LOCK('WANTED', 30);
    • SELECT IS_FREE_LOCK('WANTED');
    • SELECT RELEASE_LOCK('WANTED');
    • DB ๋ณต์ œํ•˜๊ฑฐ๋‚˜, ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ.
  4. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฝ

- Inno DB๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ.

  1. ๋ ˆ์ฝ”๋“œ ๋ฝ
    • ํ…Œ์ด๋ธ”์— ์žˆ๋Š”  row์— ๋ฝ์„ ๊ฑธ์Œ.
    • ์ฝ์„ ๋•Œ ์ˆ˜์ •์„ ๋ชปํ•˜๊ฒŒ, ๋˜๋Š” ์ˆ˜์ •ํ•  ๋•Œ ์ฝ์„ ์ˆ˜ ์—†๊ฒŒ. ๋ฝ์„ ๊ฑธ์Œ.
    • EXPLAIN SELECT * FROM ํ…Œ์ด๋ธ” WHERE MONTH(์‹ ์ฒญ์ผ์ž) = 12; --> ์—ฌ๊ธฐ์— select๋กœ ๋‚˜์˜จ row์— ๋Œ€ํ•ด์„œ ์ „๋ถ€ ๋ฝ์„ ๊ฑฐ๋Š” ๊ฒƒ.
    • ์ธ๋ฑ์Šค๋ฅผ ์ž˜ ๊ฑธ์–ด์ค˜์•ผ, ๋ถˆํ•„์š”ํ•œ ๋ฝ์„ ์•ˆ ๊ฑธ ์ˆ˜ ์žˆ์Œ.
  2. 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