æ°èŠã³ãŒã¹ã®åééå§ã«åããŠ
ãã®ã·ãªãŒãºã®ååã®èšäº (
ãšã³ãããŒãæå·åã®èåŸã«ããèãæ¹ã¯ãæå·åã«äœ¿çšãããã㌠(ããŒãã«ã¹ããŒã¹ ããŒ) ãå¥ã®ã㌠(ãã¹ã¿ãŒ ããŒ) ã§æå·åããããšããããšã§ãã ããŒãã«ã¹ããŒã¹ ããŒã¯ãå®éã«ã¯ããŒã¿ã®æå·åã«äœ¿çšãããŸãã ã°ã©ãçã«ã¯æ¬¡ã®ããã«è¡šãããšãã§ããŸãã
ãã¹ã¿ãŒ ããŒã¯ããŒãªã³ã°ã«ãããããŒãã«ã¹ããŒã¹ ããŒã¯æå·åãããããŒãã«ã¹ããŒã¹ ããã㌠(ããŒãã«ã¹ããŒã¹ã®ããŒãž 0) ã«ãããŸãã
äžã®å³ã§ã¯:
-
ããŒãã« A ã¯ã㌠1 (ã㌠1) ã§æå·åãããŸãã ã㌠1 ã¯ãã¹ã¿ãŒ ããŒã䜿çšããŠæå·åãããããŒãã« A ã®ããããŒã«æå·åãããŠä¿åãããŸãã
-
ããŒãã« B ã¯ã㌠2 ã§æå·åãããŸãã ã㌠2 ã¯ãã¹ã¿ãŒ ã㌠(ãã¹ã«ãŒ ããŒ) ã䜿çšããŠæå·åãããããŒãã« B ã®ããããŒã«æå·åãããŠæ ŒçŽãããŸãã
-
ãªã©ãªã©ã
ãµãŒããŒãããŒãã« A ã埩å·ããå¿ èŠãããå ŽåããµãŒããŒã¯ã¹ãã¬ãŒãžãããã¹ã¿ãŒ ããŒãååŸããããŒãã« A ã®ããããŒããæå·åãããã㌠1 ãèªã¿åããã㌠1 ã埩å·ããŸãã埩å·ãããã㌠1 ã¯ãµãŒããŒã®ã¡ã¢ãªã«ãã£ãã·ã¥ãããããŒãã« A ã埩å·ããããã«äœ¿çšãããŸãã ã
InnoDB
InnoDB ã§ã¯ãå®éã®æå·åãšåŸ©å·å㯠I/O å±€ã§è¡ãããŸãã ã€ãŸããããŒãžã¯ãã£ã¹ã¯ã«ãã©ãã·ã¥ãããçŽåã«æå·åããããã£ã¹ã¯ããèªã¿åãããçŽåŸã«åŸ©å·åãããŸãã
InnoDB ã§ã¯ãæå·åã¯ããŒãã«ã¹ããŒã¹ ã¬ãã«ã§ã®ã¿æ©èœããŸãã ãŸããããã©ã«ãã§ã¯ããã¹ãŠã®ããŒãã«ãåå¥ã®ããŒãã«ã¹ããŒã¹ã«äœæãããŸã (
äœããã®çç±ã§ file-per-table ãç¡å¹ã«ãªã£ãŠããå Žåããã¹ãŠã®ããŒãã«ãã·ã¹ãã ããŒãã«ã¹ããŒã¹å
ã«äœæãããŸãã ã§
次ã«é²ãåã«ããã¹ã¿ãŒã㌠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 ãçæããŸãã 次ã«ãããŒãªã³ã°ããå¿ èŠãªãã¹ã¿ãŒããŒãååŸããããŒãã«ã¹ããŒã¹ããŒã埩å·åãããã§ãã¯ãµã ãæ€èšŒããŸãã ããäžåºŠèšããŸããããã§ãã¯ãµã ãäžèŽããå Žåã¯ãã¹ãŠåé¡ãããŸãããäžèŽããªãå Žåã¯ãããŒãã«ã¹ããŒã¹ãæ¬ èœããŠãããšããŒã¯ãããŸãã
ãã®ã·ãªãŒãºã®ååã®èšäº (
ãã¹ã¿ãŒ ããŒæå·åã®é·æãšçæã«ã€ããŠå°ãã話ããŸãã æ倧ã®å©ç¹ã¯ãå¿ èŠãªæå·åã㌠(ãã¹ã¿ãŒ ããŒ) ã XNUMX ã€ã ãã§ãããæå·åããŒã¿ãšã¯å¥ã«ä¿åãããããšã§ãã ããã«ããããµãŒããŒã®èµ·åãéããªããã¹ãã¬ãŒãžãå°ãããªãããã管çã容æã«ãªããŸãã ãŸããåäžã®ãã¹ã¿ãŒããŒã¯ç°¡åã«åçæã§ããŸãã
ãã ãããã¹ã¿ãŒããŒæå·åã«ã¯å€§ããªæ¬ ç¹ã XNUMX ã€ãããŸããããã¯ãè¡šé åã tablespace_key ã§æå·åããããšãåžžã«åãããŒã§æå·åããããŸãŸã«ãªããšããããšã§ãã ããã§ã¯ãã¹ã¿ãŒããŒãããŒããŒã·ã§ã³ããŠã圹ã«ç«ã¡ãŸããã ãªãããããã¡ãªãããªã®ã§ããããïŒ MySQL ã«ã¯ãçªç¶ã®ã¯ã©ãã·ã¥ãã³ã¢ ãã¡ã€ã«ã®äœæã«ã€ãªããå¯èœæ§ã®ãããã°ãããããšãããã£ãŠããŸãã ã³ã¢ ãã¡ã€ã«ã«ã¯ãµãŒã㌠ã¡ã¢ãª ãã³ããå«ãŸããŠããããããã³ãã«ã¯åŸ©å·åãããããŒãã«ã¹ããŒã¹ ããŒãå«ãŸããå ŽåããããŸãã ããã«æªãããšã«ã埩å·åãããè¡šé åããŒã¯ã¡ã¢ãªã«ä¿åããããã£ã¹ã¯ã«äº€æããããšãã§ããŸãã ãããã®ãã¡ã€ã«ãšã¹ã¯ãã ããŒãã£ã·ã§ã³ã«ã¢ã¯ã»ã¹ããã«ã¯ root æš©éãå¿
èŠã§ãããããããã¯æ¬ ç¹ã§ã¯ãªããšèšããŸãã ã¯ãã ãã ããroot ãå¿
èŠã«ãªãã®ã¯ãã°ããã®éã ãã§ãã 埩å·åãããè¡šé åããŒã«ã¢ã¯ã»ã¹ã§ããããã«ãªããšãroot æš©éããªããŠããåŒãç¶ããã®ããŒã䜿çšããŠããŒã¿ã埩å·åã§ããŸãã ããã«ããã£ã¹ã¯ãçãŸãããµãŒãããŒãã£ã®ããŒã«ã䜿çšããŠã¹ã¯ãã ããŒãã£ã·ã§ã³/ã³ã¢ ãã¡ã€ã«ãèªã¿åãããå¯èœæ§ããããŸãã TDE ã®ç®æšã¯ããã£ã¹ã¯ãçãŸããå Žåã§ãèªã¿åããªãããã«ããããšã§ãã ã§
ç¶ããèªãïŒ
åºæïŒ habr.com