Transaction
νΈλμμ μ μ§μνμ§ μλ MyISAMκ³Ό νΈλμμ μ μ§μνλ InnoDB μ²λ¦¬ λ°©μμλ λ¬΄μ¨ μ°¨μ΄κ° μμκΉ.
MySQLμμμ νΈλμμ
νΈλμμ μ λ°λμ μ¬λ¬ κ°μ λ³κ²½ μμ μ μννλ μΏΌλ¦¬κ° μ‘°ν©λμ λλ§ μλ―Έ μλ κ°λ μ μλλ€.
νΈλμμ μ νλμ λ Όλ¦¬μ μΈ μμ μ μ μΏΌλ¦¬κ° νλκ° μλ λ κ°κ° λλ κ΄κ³μμ΄ λ Όλ¦¬μ μΈ μμ μ μμ²΄κ° 100% μ μ©λκ±°λ(commit) μ무κ²λ μ μ©λμ§ μμμΌ ν¨μ 보μ₯ν΄ μ£Όλ κ²μ΄λ€.
κ°μ₯ λ¨Όμ 2κ°μ insert 쿼리λ₯Ό μννμ¬ ν μ΄λΈμ μΈν νλ€. κ·Έλ€μ κ° ν μ΄λΈ fdpk 컬λΌμ 1, 2, 3μ μ½μ νλ 쿼리λ₯Ό μννκ³ selectλ‘ κ²°κ³Όλ₯Ό μ΄ν΄λ³΄μ.
insert into table mysiam (fdpk) values (3);
insert into table innodb (fdpk) values (3);
insert into table mysiam (fdpk) values (1), (2), (3);
ERROR 1062: Duplicate entry '3' for key 'PRIMARY'
insert into table innodb (fdpk) values (1), (2), (3);
ERROR 1062: Duplicate entry '3' for key 'PRIMARY'
select * from mysaim;
=> fdpk: 1, 2, 3
select * from innodb
=> fdpk: 3MyISAM ν μ΄λΈμλ μ€λ₯κ° λ°μνμμλ β1β, β2βλ insertκ° λμλ€. νμ§λ§ InnoDBλ 쿼리μμ μΌλΆλΌλ μ€λ₯κ° λ°μνλ©΄ μμΉλλ‘ μΏΌλ¦¬λ₯Ό μ€ννκΈ° μ μνλ‘ λ³΅κ΅¬νλ€.
MyISAM ν
μ΄λΈμμ λ°μνλ μ΄λ¬ν νμμ λΆλΆ μ
λ°μ΄νΈ(Partial Update)λΌκ³ νννκ³ μ΄ νμμ λ°μ΄ν°μ μ ν©μ±μ λ§μΆλ λ° μλΉν μ΄λ ΅κ² νλ€.
μ£Όμμ¬ν
νΈλμμ
λν DBMSμ 컀λ₯μ
κ³Ό λμΌνκ² κΌ νμν μ΅μμ μ½λμλ§ μ μ©νλ κ²μ΄ μ’λ€. μ΄λ νλ‘κ·Έλ¨ μ½λμμ νΈλμμ
μ λ²μλ₯Ό μ΅μννλΌλ μλ―Έμ΄λ€.
λ€μ κ²μν κ²μλ¬Ό μμ± ν μ μ₯νλ μμμ μ μ°¨ μ€μμ, DBMSμ νΈλμμ μ²λ¦¬μ μ’μ§ μμ μν₯μ λ―ΈμΉλ λΆλΆμ μ΄ν΄λ³΄μ.
λμ μν₯μ μ£Όλ λΆλΆ
λ§μ κ°λ°μκ° DB 컀λ₯μ μμ±(λλ νμμ κ°μ Έμ€λ)νλ μ½λλ₯Ό 1λ²κ³Ό 2λ² μ¬μ΄μ ꡬννκ³ λμμ START TRANSACTION λͺ λ ΉμΌλ‘ νΈλμμ μ μμνλ€. κ·Έλ¦¬κ³ 9λ²κ³Ό 10λ² μ¬μ΄μμ νΈλμμ μ commitνκ³ μ’ λ£(νλ‘ λ°λ©)νλ€. μ€μ λ‘ DBMSμ λ°μ΄ν°λ₯Ό μ μ₯νλ μμ (νΈλμμ )μ 5λ²λΆν° μμλλ€λ κ²μ μ μ μλ€. κ·Έλμ 2, 3, 4λ²μ μ μ°¨κ° λΉ¨λ¦¬ μ²λ¦¬λλ€κ³ νλλΌλ DBMSμ νΈλμμ μ ν¬ν¨μν¬ νμλ μλ€. μΌλ°μ μΌλ‘ DB 컀λ₯μ μ κ°μκ° μ νμ μ΄μ΄μ κ° λ¨μ νλ‘κ·Έλ¨μ΄ 컀λ₯μ μ μμ νλ μκ°μ΄ κΈΈμ΄μ§λ©΄ μ¬μ 컀λ μΌμ κ°μκ° μ€μ΄λ λ€. μ΄λ μκ°μλ κ° λ¨μ νλ‘κ·Έλ¨μμ 컀λ₯μ μ κΈ°λ€λ €μΌ νλ μν©μ΄ λ°μν μ μλ€.
λ ν° μνμ 8λ² μμ μΌλ‘ λ³Ό μ μλ€. λ©μΌ μ μ‘, FTP νμΌ μ μ‘, λ€νΈμν¬λ₯Ό ν΅ν΄ μ격 μλ²μ ν΅μ νλ μμ λ€μ μ΄λ»κ² ν΄μλ DBMSμ νΈλμμ λ΄μμ μ μΈμν€λ κ²μ΄ μ’λ€. νλ‘κ·Έλ¨μ΄ μ€νλλ λμ λ©μΌ μλ²μ ν΅μ ν μ μλ μν©μ΄ λ°μνλ€λ©΄ μΉ μλ²λΏ μλλΌ DBMS μλ²κΉμ§ μνν΄μ§λ€.
μ 보λ₯Ό μ μ₯νλ 5, 6λ² μμ μ λ°λμ νλμ νΈλμμ μΌλ‘ λ¬Άμ΄μΌ νλ©°, 7λ² μμ μ μ μ₯λ λ°μ΄ν°λ₯Ό νμΈνλ μμ μ΄λ―λ‘ νΈλμμ μ ν¬ν¨ν νμλ μλ€. 9λ² μμ μ μ±κ²©μ΄ λ€λ₯΄κΈ° λλ¬Έμ μ΄μ νΈλμμ (5, 6λ²)μ ν¨κ» λ¬Άμ§ μμλ 무방ν μ μλ€.
λ¬Έμ κ° λ λ§ν λΆλΆμ 보μν΄μ λ€μ μ€κ³ν΄λ³΄μ.
μ¬κΈ°μ μ€λͺ νλ λ°λ νλ‘κ·Έλ¨μ μ½λκ° DB 컀λ₯μ μ κ°μ§λ λ²μμ νΈλμμ μ΄ νμ±νλΌ μλ νλ‘κ·Έλ¨μ λ²μλ₯Ό μ΅μνν΄μΌ νλ€λ κ²μ΄λ€. νλ‘κ·Έλ¨ μ½λμμ μ μ λΌμΈμ΄λΌ νλλΌλ λ€νΈμν¬ μμ μ΄ μλ κ²½μ° λ°λμ νΈλμμ μμ λ°°μ ν΄μΌ νλ€.
Last updated