μλ‘μ΄ κ³Όμ μ μμμ μμνμ¬ μ°λ¦¬λ MySQLμ μνΈνμ λν μΌλ ¨μ κΈ°μ¬λ₯Ό κ³μ κ²μν©λλ€.

μ΄ μ리μ¦μ μ΄μ κΈ°μ¬() ν€ μ격 μ¦λͺ λͺ¨μμ λν΄ μ΄μΌκΈ°νμ΅λλ€. μ΄λ² κΈμμλ λ§μ€ν° ν€κ° μ΄λ»κ² μ¬μ©λλμ§ μ΄ν΄λ³΄κ³ λ΄ν¬ μνΈνμ μ₯μ κ³Ό λ¨μ μ λν΄ λ Όμνκ² μ΅λλ€.
λ΄ν¬ μνΈνμ κΈ°λ³Έ μμ΄λμ΄λ μνΈνμ μ¬μ©λλ ν€(ν μ΄λΈμ€νμ΄μ€ ν€)κ° λ€λ₯Έ ν€(λ§μ€ν° ν€)λ‘ μνΈνλλ€λ κ²μ λλ€. ν μ΄λΈμ€νμ΄μ€ ν€λ μ€μ λ‘ λ°μ΄ν°λ₯Ό μνΈννλ λ° μ¬μ©λ©λλ€. κ·Έλν½μ μΌλ‘λ λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€.

λ§μ€ν° ν€λ ν€λ§μ μκ³ ν μ΄λΈμ€νμ΄μ€ ν€λ μνΈνλ ν μ΄λΈμ€νμ΄μ€ ν€λ(ν μ΄λΈμ€νμ΄μ€μ 0νμ΄μ§)μ μμ΅λλ€.
μ κ·Έλ¦Όμμ:
ν μ΄λΈ Aλ ν€ 1(ν€ 1)λ‘ μνΈνλ©λλ€. ν€ 1μ λ§μ€ν° ν€λ₯Ό μ¬μ©νμ¬ μνΈνλμ΄ ν μ΄λΈ Aμ ν€λμ μνΈνλμ΄ μ μ₯λ©λλ€.
ν μ΄λΈ Bλ ν€ 2λ‘ μνΈνλ©λλ€. ν€ 2λ λ§μ€ν°ν€(λ§μ€μ»€ν€)λ₯Ό μ΄μ©ν΄ μνΈνλμ΄ ν μ΄λΈ Bμ ν€λμ μνΈνλμ΄ μ μ₯λλ€.
λ±λ±.
μλ²κ° ν μ΄λΈ Aλ₯Ό ν΄λ ν΄μΌ νλ κ²½μ° μ€ν 리μ§μμ λ§μ€ν° ν€λ₯Ό κ²μνκ³ , ν μ΄λΈ Aμ ν€λμμ μνΈνλ ν€ 1μ μ½κ³ , ν€ 1μ ν΄λ ν©λλ€. ν΄λ λ ν€ 1μ μλ²μ λ©λͺ¨λ¦¬μ μΊμλμ΄ ν μ΄λΈ Aλ₯Ό ν΄λ νλ λ° μ¬μ©λ©λλ€. .
InnoDB
InnoDBμμ μ€μ μνΈν λ° λ³΅νΈνλ I/O κ³μΈ΅μμ μνλ©λλ€. μ¦, νμ΄μ§λ λμ€ν¬μ νλ¬μλκΈ° μ§μ μ μνΈνλκ³ λμ€ν¬μμ μ½ν μ§νμ μνΈκ° ν΄λ λ©λλ€.
InnoDBμμ μνΈνλ ν μ΄λΈμ€νμ΄μ€ μμ€μμλ§ μλν©λλ€. κ·Έλ¦¬κ³ κΈ°λ³Έμ μΌλ‘ λͺ¨λ ν μ΄λΈμ λ³λμ ν μ΄λΈμ€νμ΄μ€(). μ¦, νλμ ν μ΄λΈλ§ ν¬ν¨ν μ μλ ν μ΄λΈμ€νμ΄μ€κ° μμ±λ©λλ€. κΈ°λ³Έ ν μ΄λΈμ€νμ΄μ€μλ ν μ΄λΈμ μμ±ν μ μμ§λ§(). κ·Έλ¬λ μ΄λ€ κ²½μ°μλ ν μ΄λΈμ νμ μΌλΆ ν μ΄λΈμ€νμ΄μ€μ μμΉν©λλ€. κ·Έλ¦¬κ³ ν μ΄λΈμ€νμ΄μ€ λ 벨μμ μνΈνκ° μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ μμ ν μνΈνλκ±°λ κ·Έλ μ§ μμ κ²½μ°κ° μμ΅λλ€. μ¦, λ©μΈ ν μ΄λΈμ€νμ΄μ€μ ν μ΄λΈ μ€ μΌλΆλ§μ μνΈννλ κ²μ λΆκ°λ₯νλ€.
μ΄λ€ μ΄μ λ‘ ν μ΄λΈλΉ νμΌμ λΉνμ±ννλ©΄ λͺ¨λ ν μ΄λΈμ΄ μμ€ν ν μ΄λΈμ€νμ΄μ€ λ΄μ μμ±λ©λλ€. μμ innodb λ³μλ₯Ό μ¬μ©νμ¬ μμ€ν ν μ΄λΈμ€νμ΄μ€λ₯Ό μνΈνν μ μμ΅λλ€.sysν μ΄λΈμ€νμ΄μ€μνΈν μ€λ λλ₯Ό μνΈννκ±°λ μ¬μ©νμ§λ§ μ΄λ μμ§ μ€νμ μΈ κΈ°λ₯μ λλ€. MySQLμλ μ΄κ²μ΄ μμ΅λλ€.
κ³μ μ§ννκΈ° μ μ λ§μ€ν° ν€ IDμ ꡬ쑰λ₯Ό μ΄ν΄λ΄μΌ ν©λλ€. UUID, KEYλ‘ κ΅¬μ±λ©λλ€.ID λ° μ λμ¬ "INNODBKey". λ€μκ³Ό κ°μ΅λλ€: INNODBKey-UUID-KEYID.
UUIDλ μνΈνλ ν μ΄λΈμ€νμ΄μ€κ° μλ μλ²μ uuidμ λλ€. μ΄μ IDλ λ¨μν κ³μ μ¦κ°νλ κ°μ λλ€. λ§μ€ν°ν€ KEYλ₯Ό μ²μ μμ±ν λIDλ 1μ λλ€. ν€ μν μ€ μ λ§μ€ν° ν€κ° μμ±λλ©΄ KEYID = 2 λ±μ λλ€. μ΄ μ리μ¦μ λ€μ κΈ°μ¬μμ λ§μ€ν° ν€ μνμ λν΄ μμΈν μ€λͺ νκ² μ΅λλ€.
μ΄μ λ§μ€ν° ν€ μλ³μκ° μ΄λ»κ² μκ²Όλμ§ μμμΌλ μνΈνλ ν μ΄λΈμ€νμ΄μ€ ν€λλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. ν μ΄λΈμ€νμ΄μ€κ° μνΈνλλ©΄ ν€λμ μνΈν μ λ³΄κ° μΆκ°λ©λλ€. λ€μκ³Ό κ°μ΅λλ€.

ν€ IDλ KEYμ λλ€.μ΄λ―Έ λ Όμν λ§μ€ν° ν€ IDμ IDμ λλ€. UUIDλ μλ²μ uuidμ΄λ©° λ§μ€ν° ν€ μλ³μμλ μ¬μ©λ©λλ€. TABLESPACE KEY - μλ²μμ 무μμλ‘ μμ±λ 256λΉνΈλ‘ ꡬμ±λ ν μ΄λΈμ€νμ΄μ€ ν€μ λλ€. μ΄κΈ°ν 벑ν°(IV)λ 무μμλ‘ μμ±λ 256λΉνΈλ‘ ꡬμ±λ©λλ€(128λΉνΈμ¬μΌ ν¨). IVλ AES μνΈν λ° λ³΅νΈνλ₯Ό μ΄κΈ°ννλ λ° μ¬μ©λ©λλ€(256λΉνΈ μ€ 128λΉνΈλ§ μ¬μ©λ¨). λ§μ§λ§μλ TABLESPACE KEY λ° IVμ λν CRC32 체ν¬μ¬μ΄ μμ΅λλ€.
μ§κΈκΉμ§ λλ ν€λμ ν μ΄λΈμ€νμ΄μ€μ μνΈνλ ν€κ° ν¬ν¨λμ΄ μλ€κ³ μ‘°κΈ λ¨μννμ΅λλ€. μ€μ λ‘ ν μ΄λΈμ€νμ΄μ€ ν€μ μ΄κΈ°ν 벑ν°λ λ§μ€ν° ν€λ₯Ό μ¬μ©νμ¬ ν¨κ» μ μ₯λκ³ μνΈνλ©λλ€. ν μ΄λΈμ€νμ΄μ€ ν€μ μ΄κΈ°ν 벑ν°λ₯Ό μνΈννκΈ° μ μ μ΄μ λν CRC32κ° κ³μ°λλ€λ μ μ κΈ°μ΅νμμμ€.
CRC32κ° μ νμνκ°μ?
κ°λ¨ν λ§ν΄μ, λ§μ€ν° ν€μ μ ν¨μ±μ 보μ₯ν©λλ€. ν μ΄λΈμ€νμ΄μ€ ν€μ μ΄κΈ°ν 벑ν°λ₯Ό 볡νΈνν ν 체ν¬μ¬μ κ³μ°νμ¬ ν€λμ μ μ₯λ CRC32μ λΉκ΅ν©λλ€. 체ν¬μ¬μ΄ μΌμΉνλ©΄ μ¬λ°λ₯Έ λ§μ€ν° ν€μ ν μ΄λΈμ€νμ΄μ€ ν€κ° μλ κ²μ λλ€. κ·Έλ μ§ μμΌλ©΄ ν μ΄λΈμ€νμ΄μ€κ° λλ½λ κ²μΌλ‘ νμλ©λλ€(μ΄μ°¨νΌ ν΄λ ν μ μμ΅λλ€).
λ€μκ³Ό κ°μ΄ μ§λ¬Έν μ μμ΅λλ€. ν€ κ²μ¦μ μ΄λ μμ μ μνλ©λκΉ? λλ΅μ μλ²κ° μμλ λμ λλ€. μνΈνλ ν μ΄λΈ/ν μ΄λΈμ€νμ΄μ€κ° μλ μλ²λ μμ μ UUID, KEYλ₯Ό μ½μ΅λλ€.ν€λμμ IDλ₯Ό κ°μ Έμ λ§μ€ν° ν€ IDλ₯Ό μμ±ν©λλ€. κ·Έλ° λ€μ ν€λ§μμ νμν λ§μ€ν° ν€λ₯Ό μ»κ³ , ν μ΄λΈμ€νμ΄μ€ ν€λ₯Ό ν΄λ νκ³ , 체ν¬μ¬μ νμΈν©λλ€. λ€μ ν λ² μ²΄ν¬μ¬μ΄ μΌμΉνλ©΄ λͺ¨λ κ²μ΄ μ μμ΄λ©°, μΌμΉνμ§ μμΌλ©΄ ν μ΄λΈμ€νμ΄μ€κ° λλ½λ κ²μΌλ‘ νμλ©λλ€.
μ΄ μ리μ¦μ μ΄μ κΈ°μ¬(), κ·Έλ¬λ©΄ μλ² κΈ°λ° ν€ μ μ₯μλ₯Ό μ¬μ©ν λ μμ μ μλ²κ° ν€ μλ³μ λͺ©λ‘, μ¦ ν€ IDμ μ¬μ©μ IDλ§ μμ νλ€λ μ μ κΈ°μ΅ν μ μμ΅λλ€. μ΄ μμ ν€λ₯Ό κ³ μ νκ² μλ³νκΈ° λλ¬Έμ λλ€. μ΄μ μλ²κ° μμλλ©΄ ν μ΄λΈμ€νμ΄μ€ ν€λ₯Ό ν΄λ ν μ μλμ§ νμΈνλ λ° νμν λͺ¨λ ν€λ₯Ό μμ νλ€λ μλ―Έμ λλ€. κ·Έλ°λ° μ μ΄κΈ°ν κ³Όμ μμ μλ² μ€ν 리μ§μ κ²½μ° ν€λ§ λ‘λλλμ?μμ΄λμ μ¬μ©μIDκ° μλ λͺ¨λ ν€κ° μμ΅λκΉ? λͺ¨λ ν€κ° νμνμ§ μμ μλ μκΈ° λλ¬Έμ λλ€. μ΄λ μ£Όλ‘ λ§μ€ν° ν€ μνμΌλ‘ μΈν΄ λ°μν©λλ€. λ§μ€ν° ν€κ° μνλλ©΄ μ μ₯μμ μ λ§μ€ν° ν€κ° μμ±λμ§λ§ μ΄μ ν€λ μμ λμ§ μμ΅λλ€. λ°λΌμ μλ²μ νμνμ§ μμ λ§μ ν€κ° μλ² ν€ μ μ₯μμ μμ μ μμΌλ―λ‘ μλ²κ° μμλ λ κ²μλμ§ μμ΅λλ€.
μ΄μ λ§μ€ν° ν€ μνΈνμ μ₯μ κ³Ό λ¨μ μ λν΄ μ‘°κΈ μ΄μΌκΈ°ν μκ°μ λλ€. κ°μ₯ ν° μ₯μ μ μνΈνλ λ°μ΄ν°μ λ³λλ‘ μ μ₯λλ μνΈν ν€(λ§μ€ν° ν€)κ° νλλ§ νμνλ€λ κ²μ λλ€. μ΄λ₯Ό ν΅ν΄ μλ² μμμ΄ λΉ λ₯΄κ³ μ μ₯ 곡κ°μ΄ μμ κ΄λ¦¬κ° μ¬μμ§λλ€. λν λ¨μΌ λ§μ€ν° ν€λ μ¬μμ±νκΈ°λ μ½μ΅λλ€.
κ·Έλ¬λ λ§μ€ν° ν€ μνΈνμλ ν κ°μ§ ν° λ¨μ μ΄ μμ΅λλ€. ν μ΄λΈμ€νμ΄μ€κ° tablespace_keyλ‘ μνΈνλλ©΄ νμ λμΌν ν€λ‘ μνΈνλ μνλ‘ μ μ§λ©λλ€. μ¬κΈ°μλ λ§μ€ν° ν€λ₯Ό μννλ κ²μ΄ λμμ΄ λμ§ μμ΅λλ€. μ΄κ²μ΄ μ λ¨μ μ λκΉ? μ°λ¦¬λ MySQLμ κ°μμ€λ¬μ΄ μΆ©λκ³Ό μ½μ΄ νμΌ μμ±μΌλ‘ μ΄μ΄μ§ μ μλ λ²κ·Έκ° μλ€λ κ²μ μκ³ μμ΅λλ€. μ½μ΄ νμΌμλ μλ² λ©λͺ¨λ¦¬ λ€νκ° ν¬ν¨λμ΄ μμΌλ―λ‘ λ€νμ ν΄λ λ ν μ΄λΈμ€νμ΄μ€ ν€κ° ν¬ν¨λ μ μμ΅λλ€. μ€μκ°μμΌλ‘, ν΄λ λ ν μ΄λΈμ€νμ΄μ€ ν€λ λ©λͺ¨λ¦¬μ μ μ₯λμ΄ λμ€ν¬λ‘ κ΅μ²΄λ μ μμ΅λλ€. μ΄λ¬ν νμΌκ³Ό μ€μ νν°μ μ μ‘μΈμ€νλ €λ©΄ λ£¨νΈ κΆνμ΄ νμνλ―λ‘ μ΄λ λ¨μ μ΄ μλλΌκ³ λ§ν μ μμ΅λλ€. μ. κ·Έλ¬λ 루νΈλ μ μ λμλ§ νμν©λλ€. λκ΅°κ°κ° ν΄λ λ ν μ΄λΈμ€νμ΄μ€ ν€μ μ‘μΈμ€νλ©΄ λ£¨νΈ κΆν μμ΄λ μ΄λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό ν΄λ ν μ μμ΅λλ€. λν λμ€ν¬λ₯Ό λλλΉν μ μμΌλ©°, νμ¬ λꡬλ₯Ό μ¬μ©νμ¬ μ€μ νν°μ /μ½μ΄ νμΌμ μ½μ μ μμ΅λλ€. TDEμ λͺ©νλ λμ€ν¬λ₯Ό λλλΉνλλΌλ μ½μ μ μλλ‘ λ§λλ κ²μ λλ€. μμ μλ‘ μμ±λ ν€λ₯Ό μ¬μ©νμ¬ ν μ΄λΈμ€νμ΄μ€λ₯Ό λ€μ μνΈνν μ μμ΅λλ€. μ΄ κΈ°λ₯μ μνΈν μ€λ λλΌκ³ νλ©° μ΄ κΈμ μ°λ μμ μμλ μμ§ μ€νμ μ λλ€.
λ μ½μ΄λ³΄κΈ°:
μΆμ² : habr.com
