MySQL Engine Lock
MySQL μμ§ λ 벨μ λ½μ λͺ¨λ μ€ν λ¦¬μ§ μμ§μ μν₯μ μ£Όκ² λλ λ½μΌλ‘, μλμ κ°μ μ’ λ₯κ° μλ€.
κΈλ‘λ² λ½(Global Lock)
λ½μ λ²μκ° MySQL μλ² μ 체λ‘(μμ λμ ν μ΄λΈμ΄λ λ°μ΄ν°λ² μ΄μ€κ° μλλλΌλ ν¬ν¨), μ 곡νλ μ κΈ μ€ κ°μ₯ λ²μκ° νΌ
ν μΈμ μμ κΈλ‘λ² λ½μ νλνλ©΄ λ€λ₯Έ μΈμ μμ SELECTλ₯Ό μ μΈν λλΆλΆμ DDL/DML μΏΌλ¦¬κ° λ½μ΄ ν΄μ λ λκΉμ§ λκΈ°
λͺ¨λ ν μ΄λΈμ ν° μν₯μ λ―ΈμΉκΈ° λλ¬Έμ μΉ μλΉμ€μμλ μ¬μ©νμ§ μλ κ²μ΄ μ’μ
FLUSH TABLES WITH READ LOCK
λͺ λ ΉμΌλ‘ νλνλ©°,UNLOCK TABLES
λͺ λ ΉμΌλ‘ ν΄μ
λ°±μ
λ½(Backup Lock)
InnoDB μ€ν λ¦¬μ§ μμ§μμλ νΈλμμ μ μ§μνκΈ° λλ¬Έμ κΈλ‘λ² λ½μ μ¬μ©ν νμκ° κ±°μ μμ΄μ‘μΌλ©°, μ’ λ κ°λ²Όμ΄ λ½μΈ λ°±μ λ½μ μ¬μ©νλ€. νΉμ μΈμ μμ λ°±μ λ½μ νλνλ©΄ μλμ μμ μ΄ μ νλμ§λ§ μΌλ°μ μΈ ν μ΄λΈμ λ°μ΄ν° λ³κ²½μ νμ©λλ€.
λ°μ΄ν°λ² μ΄μ€ λ° ν μ΄λΈ λ±μ λ³κ²½ λ° μμ
REPAIR TABLE / OPTIMIZE TABLE λͺ λ Ή
μ¬μ©μ κ΄λ¦¬ λ° λΉλ°λ²νΈ λ³κ²½
MySQL μλ²λ₯Ό μμ€ - λ ν리카
λ‘ κ΅¬μ±νλ κ²½μ° μ£Όλ‘ λ°±μ
μμ
μ λ ν리카 μλ²μμ μ΄λ£¨μ΄ μ§λλ°, μ΄ λ λ ν리카 μλ²μμ λ°±μ
λ½μ μ¬μ©νμ¬ λ°±μ
μ μννκ³ μλ€.
ν
μ΄λΈ λ½(Table Lock)
κ°λ³ ν μ΄λΈ λ¨μλ‘ μ€μ λλ μ κΈμΌλ‘, λͺ μμ λλ 묡μμ μΌλ‘ νΉμ ν μ΄λΈμ λ½μ νλν μ μλ€.
λͺ μμ λ½
LOCK TABLES tbl_name [READ | WRITE]
λͺ λ ΉμΌλ‘ νλUNLOCK TABLES
λͺ λ ΉμΌλ‘ ν΄μ νΉλ³ν μν©μ΄ μλλ©΄ μ ν리μΌμ΄μ μμ μ¬μ©ν μΌμ΄ κ±°μ μμ
λͺ μμ μΌλ‘ ν μ΄λΈμ μ κ·Έλ μμ μ κΈλ‘λ² λ½κ³Ό λμΌνκ² λ€λ₯Έ μμ μ ν° μν₯μ λ―ΈμΉ¨
묡μμ λ½
(MyISAM / MEMORY νμ )DML 쿼리λ₯Ό μ€ννλ©΄ λ°μ
νμ§λ§ InnoDB μμ§μμλ μ€ν λ¦¬μ§ μμ§ μ°¨μμμ λ μ½λ κΈ°λ°μ μ κΈμ μ 곡νκΈ° λλ¬Έμ DML μΏΌλ¦¬λ‘ λ¬΅μμ λ½μ΄ μ€μ λμ§ μμ
(λͺ¨λ μμ§ ν¬ν¨)DDL μΏΌλ¦¬λ‘ μ€ν€λ§λ₯Ό λ³κ²½νλ κ²½μ° λ¬΅μμ λ½μ΄ μ€μ λ¨
λ€μλ λ½(Named Lock)
λ€μλ λ½μ GET_LOCK()
ν¨μλ₯Ό μ¬μ©ν΄ μμμ λ¬Έμμ΄μ λν΄ λ½μ μ€μ ν μ μμΌλ©°,
μ κΈμ λμμ΄ ν
μ΄λΈ/λ μ½λ κ°μ λ°μ΄ν°λ² μ΄μ€ νΉμ κ°μ²΄κ° μλλΌ μ§μ ν λ¬Έμμ΄(String)μ λν μ κΈμ΄λ€.
νΈλμμ μ΄ μ’ λ£λ λ μλμΌλ‘ ν΄μ λμ§ μκΈ° λλ¬Έμ, μ κΈ μκ°μ΄ μ§λκ±°λ λͺ μμ μΌλ‘ ν΄μ ν΄μΌ νλ€.
μμ© - λΆμ° λ½
λ€μλ λ½μ μλμ κ°μ΄ λͺ μμ μΌλ‘ λ½μ μ€μ νκ³ ν΄μ νλ λ°©μμΌλ‘ λΆμ° λ½μ ꡬνν μ μλ€.
λ©νλ°μ΄ν° λ½(Metadata Lock)
λ°μ΄ν°λ² μ΄μ€ κ°μ²΄(ν μ΄λΈμ΄λ λ·° λ±)μ μ΄λ¦μ΄λ ꡬ쑰λ₯Ό λ³κ²½νλ κ²½μ°μ νλνλ μ κΈμΌλ‘, λͺ μμ μΌλ‘ νλνκ±°λ ν΄μ νλ κ²μ΄ μλ ν μ΄λΈμ μ΄λ¦μ λ³κ²½νλ κ²½μ° μλμΌλ‘ νλλλ€.
μμ κ°μ΄ λ κ°μ λͺ
λ Ήλ¬ΈμΌλ‘ λλμ΄ μ€ννλ©΄, κΈ°μ‘΄ rank
ν
μ΄λΈμ μ κ·Όνλ €λ λ€λ₯Έ μΈμ
μμ Table Not Found
μλ¬κ° λ°μν μ μλ€.
νμ§λ§ μμ κ°μ΄ RENAME TABLE λͺ
λ Ήλ¬Έμ λ κ°μ μμ
μ ν λ²μ μ€ννλ©΄
λ ν
μ΄λΈμ λν΄ μ λΆ λ½μ νλνκ² λμ΄ λ€λ₯Έ μΈμ
μμ Table Not Found
κ°μ μλ¬κ° λ°μνμ§ μλλ€.
μμ© - ν
μ΄λΈ ꡬ쑰 λ³κ²½
λ§μ½ μλΉμ€ μ μ§ μ€ ν μ΄λΈ ꡬ쑰λ₯Ό λ³κ²½ν΄μΌνλ μν©μ΄λΌλ©΄ μλμ κ°μ΄ ν μ μλ€.
μλ‘μ΄ κ΅¬μ‘°μ ν μ΄λΈ μμ±
μ΅κ·Ό(1μκ° μ§μ λλ ν루 μ )κΉμ§μ λ°μ΄ν°λ₯Ό Primary KeyμΈ id κ°μ λ²μλ³λ‘ λλ μ μ¬λ¬ κ°μ μ€λ λλ‘ λ³΅μ¬
νΈλμμ μ auto commitμΌλ‘ μ€μ
μμ λμ ν μ΄λΈμ λν΄ ν μ΄λΈ λ½μ μ€μ
κΈ°μ‘΄ ν μ΄λΈμ λ°μ΄ν°λ₯Ό μλ‘μ΄ ν μ΄λΈλ‘ 볡μ¬
λͺ¨λ λ°μ΄ν° λ³΅μ¬ μλ£ ν ν μ΄λΈ μ΄λ¦ λ³κ²½
ν μ΄λΈ μ°κΈ° λ½ ν΄μ λ° ν μ΄λΈ μμ
μ°Έκ³ μλ£
Last updated
Was this helpful?