ä»æ¥ã®ã€ã³ã¿ãã¥ãŒã®äž»äººå
¬ã玹ä»ããå¿
èŠã¯ã»ãšãã©ãããŸããã Perconaãã¯ãã«ã«ãµããŒããšã³ãžãã¢ã®Sveta Smirnovaã¯ãMySQLã®ããã©ãŒãã³ã¹ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãšæé©åã®ãšãã¹ããŒãã§ããããã·ã¢ããã³åœéçãªãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®ç©æ¥µçãªã¡ã³ããŒã§ãããäž»èŠãªæ¥çã€ãã³ãã§å®æçã«è¬æŒãè¡ããæãé¢é£æ§ã®é«ãMySQLããã¯ã®1ã€ã§ããMySQLãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®èè
ã§ãã ä»åŸã®å€ã®PG Day'17ãã·ã¢ã§ãSvetaã¯MySQLããã©ãŒãã³ã¹ã®ãããã°ã«é¢ããéäžãã¬ãŒãã³ã°ã³ãŒã¹ãå®æœãã ã¬ããªã±ãŒã·ã§ã³ã®ãããã°ã«é¢ããè¬çŸ©ãè¡ããŸãã
PG Dayã®åå€ãSvetaãšMySQLã®ãã°ãå ±åããã³ä¿®æ£ããããã»ã¹ã®è€éãã人æ°ã®ãããã©ãŒã¯ã®äžçã®ææ°ã®åŸåãšåŸåãJSONãµããŒãæ©èœã®å°å
¥ã®æŽå²ã«ã€ããŠè©±ããMySQLã䜿çšãããã¹ãŠã®å°é家ã«åœ¹ç«ã€è³æãããã°ãæžç±ãéžæããŸããã
PG Dayå°çšã«ããã¬ãŒãã³ã°ã³ãŒã¹ã®ç¹å¥ãªã»ã¯ã·ã§ã³ãããã©ãŒãã³ã¹ã¹ããŒãå°çšã«ãªããŸãã ãã®å©ãã«ãããã¹ãã¢ãããã·ãŒãžã£ã®ãããã°ãMySQLãµãŒããŒã®RAMã®äœ¿çšå Žæã®è¿œè·¡ãæ¥ç¶ããšã«çŸåšã®å€æ°ã®è¡šç€ºãã¯ãšãªã®ãããã°ãããã¯ã®èšºæãªã©ãè¡ãããšãã§ããŸãã Svetaã¯ã ããã©ãŒãã³ã¹ã¹ããŒããèª¿æŽ ããã¿ã¹ã¯ã«å«ãŸããé©åãªããŒã«ãéžæããæ¹æ³ã説æã ãŸã ãPG DayïŒããªãã«ã€ããŠå°ãæããŠãã ããã ããªãã¯èª°ãäœãããŠããŸããã å°éè·ã§ã©ã®ãããåããŠããŸãããã©ã®ãããªè³æ ŒããããŸããïŒSvetaïŒç§ã¯10幎以äžã«ããã£ãŠMySQL
ãã¯ãã«ã«ãµããŒããšã³ãžãã¢ãšããŠåã
ãŠããŸãã 圌女ã¯ãåŸã«Sunãè²·åããMySQL ABã次ã«Oracleã§å§ããŸããã Perconaã§ãåãããšãããŠããŸãã MySQLã®ãã¯ãã«ã«ãµããŒããšã³ãžãã¢ã«ãªãåã¯ãWebéçºè
ãšããŠåããŠããŸããã è¿å¹Žãç§ã¯ã¯ããŒãºãã¯ã©ã€ã¢ã³ãåãã®CRMã·ã¹ãã ã®éçºã«é¢é£ãããããžã§ã¯ããè¡ã£ãŠããŸããã ãããã¯ãã©ã€ããŒããªãã®ã§ãããPHPãšMySQLã§ã¯åŽé¢ããã¯èŠããŸããã Webéçºè
ãšããŠãããŸããŸãªããŒã¿ããŒã¹ã䜿çšããŸããã å¯èœãªéããMySQLãéžæããŠãã ããã
å€ãã®å Žåãæè¡ãµããŒããšã¯ãé»è©±ã«åº§ã£ãŠæããªè³ªåã«çããããšã§ãã å®éãMySQLã®å Žåã
ããã¯å°ãç°ãªããŸãã ã¬ãã«ã§æž¬å®ããå Žåãç§ãã¡ã¯L3ã§ãïŒããé«ãã¬ãã«ããããã©ããã¯ããããŸãã-æ°å€ã¯æ°ã«ããŸããïŒã ç§ãã¡ã¯å®å
šã«ç°ãªãããšãããŸãïŒ
ç§ãã¡ã¯ãã°ãã°
ã³ãŒãã調㹠ãæã«ã¯
ä¿®æ£ãæžãããã
ãŸã ã äžé©åãªåäœããããã©ãŒãã³ã¹ã®åé¡ãMySQLã®ã¯ã©ãã·ã¥ãŸã§ãããããç¶æ³ãç£èŠããŸãã ããå
·äœçã«ã¯ã
ãã°ã®
åªå
é äœã«åãçµãã§ããŸãã Oracleã§ã¯ã
MySQL Enterprise Backup Teamãšç·å¯ã«é£æºããŸããã ããã¯ã¢ãããœãªã¥ãŒã·ã§ã³ïŒå€ãç¿æ
£ã§ã¯ãªãïŒãªã©ã«åŒãç¶ãèå³ããããŸãã
PG DayïŒãã°ã«ã€ããŠè©±ããŠããã®ã§ãæçºçãªè³ªåãããŸãã å€ãã®å Žåã人ã
ã¯MySQLã®ãã°ãäœå¹Žãã®éä¿®æ£ãããŠããªãããšã蚎ããŸãã ããã¯æ¬åœã§ããïŒ Oracleã§ãã°ãããéãä¿®æ£ãããããã«ããã°ã¬ããŒããæ£ããã³ã³ãã€ã«ããæ¹æ³ã¯ïŒSvetaïŒç§ã¯ä»Oracleã«ã¯ããŸããã 圌女ã¯ã
åé¡ãæçµçã«ä¿®æ£ãããããã«ã
åé¡ãå ±åãã
æ¹æ³ ã«é¢ããç¹å¥ãª
5åéã®å ±åæžãäœæããŸããã MySQLã®äžçïŒOracleã®PerconaïŒã§ã¯ããµããŒãã°ã«ãŒãã¯æåã®æ®µéã§ãã°ãåŠçããŸãã éçºè
ã§ã¯ãªããµããŒãããçç± ãã°ãæçš¿ãããšãããããåçŸå¯èœã§ããããšãããã
æ¬åœã«ééãã§
ããããš ããããŠäºæãããåäœã§ã¯ãªããææžåãããŠããªãããš
ã確èªããå¿
èŠãããããã§ãã ãã®ãã°ã¯ææ°ããŒãžã§ã³ã«é¢é£ããŠããããããåçŸããã®ã«ååãªæ
å ±ãæäŸããŠããããšã ããã«ã¯å€ãã®æéãããããŸãã æåããåçŸå¯èœãªãã¹ãã±ãŒã¹ãæäŸã§ããã»ã©ããããã®è³ªåãžã®åçãæ©ããªãããã°ãMySQL BugsããŒã¿ããŒã¹ã§ç¢ºèªæžã¿ã¹ããŒã¿ã¹ã«ãªãã
ãPercona BugsããŒã¿ããŒã¹ã§ç¢ºèªæžã¿ã«ãªãã次ã®æ®µéã«é²ã¿ãŸãã
次ã®ã¹ãããã¯2ã€ã®æ¹æ³ã§ãã ãã¹ãŠã®ãã°ã¯ããããã
ããªã¢ãŒãžããã»ã¹ãééã
ãŸã ãåãã°ã¯ãéçºè
ã®èšç»ã«åŸã£ãŠåªå
ãããŸãã é倧ãªãšã©ãŒã¯ããã«ä¿®æ£ãããŸãã éçºè
ããšã©ãŒãå€æ°ã®ãŠãŒã¶ãŒã«åé¡ãåŒãèµ·ããå¯èœæ§ãããããšã«æ°ä»ããå Žåãçæéã§ä¿®æ£ãããŸãã ãããããã¹ãŠã®ãã°ããã®ãããªããã§ã¯ãããŸããã ç§ã®å®è·µã§ã¯ã顧客ããã®èŠæ
ãå€æ°çºçããŠããã«ãããããããéçºè
ã«ãšã£ãŠãã°ããŽãã®ããã«èŠããå ŽåããããŸãããåé¿çããããšèšãããŠããŸãã ã¯ã©ã€ã¢ã³ãã1000å°ã®ãµãŒããŒãæã£ãŠãããšã¯èª°ãèããŠããŸããã§ãããåãµãŒããŒã§ãã®åé¿çã䜿çšããã«ã¯ãå€ãã®æéãšåŽåãè²»ããå¿
èŠããããŸãã ããã¯å¿
ãããæ確ã§ã¯ãããŸããã
ãã®ãããªå ŽåãPerconaãšOracleã®äž¡æ¹ã«
ããµããŒãã®ã客æ§åãã«ãã°ããšã¹ã«ã¬ãŒã·ã§ã³ããããã®å§å¡äŒããããŸãã ãµããŒãå¥çŽãçµãã§ããå Žåãããã®ãã°ã¯ç§ã«åœ±é¿ãäžããŸããä¿®æ£ãããã§ãããšæžãããšãã§ããŸãã Perconaã®ãã°ã¯å°ãªããªã£ãŠããŸãã ããããéçºããŒã ã¯å°èŠæš¡ã§ãã ããã¯äœãã®æ±ºå®çãªèŠå ã§ããããšãå€æããå ŽåããããŸãããäœãã§ã¯ãããŸããã ããšãã°ããã°
989ããããŸãã ããã¯10幎éä¿®æ£ãããŸããã ãããä¿®æ£ãããã
ã«ãã©ã³ã¿ã€ã ãšã³ãžã³ã®äžéšãå®å
šã«æžãæãã 3ã€ã®äœæ¥ãã°ãå®è£
ããå¿
èŠããããŸããã æ©èœèŠæ±ãšåŒã¶ããšã¯ã§ããŸããããæ°ããæ©èœãäœæããããããä¿®æ£ããããã«ã¡ã¿ããŒã¿ããã¯ãå®è£
ãããŸããã ãããèµ·ãããŸãã
äžè¬çãªã«ãŒã«ïŒãã°ãä¿®æ£ããå Žåã¯ãã§ããã ãæ£ç¢ºãªãã¹ãã±ãŒã¹ãäœæããŠãã ããã ãã®å Žåããã°ãå ±åããŠããã確èª/æ€èšŒãããŠéçºãéå§ãããåªå
é äœä»ãããã»ã¹ãçµéãããŸã§ãæéã¯æå°éã«ãªããŸããPG DayïŒããŸããŸãªMySQLãªãã·ã§ã³ã«é¢ãã質åã çŸåšã®éçºååã¯äœã§ãããã©ã®æ¹åã«åãã£ãŠããŸããïŒ ããã«ã€ããŠã³ã¡ã³ãã§ããŸããïŒã¹ãŽã§ã¿ïŒç§ã¯ä¿å®çãªäººã§ãã MySQLã«ã¯3ã€ã®äž»ãªãªãã·ã§ã³ããããŸãã 1ã€ç®ã¯ãOracleãè¡ãã¢ããã¹ããªãŒã ã§ãã
Oracle MySQL Serverã§ãã 2ã€ç®ã¯
Percona Server㧠ã
以åã®ãµãŒããŒãš100ïŒ
äºææ§ããããŸãã ããŒã¿ãã£ã¬ã¯ããªPercona ServerããããŒã¿ãååŸããOracle MySQL Serverã§äœ¿çšã§ããŸããéãåæ§ã§ãã Oracle MySQL Serverãããé«éãªå Žåãããã€ãã®è¿œå æ©èœãšæé©åããããŸãã
åé·ã¹ããŒãã°ã
ç£æ»ãã°ãªã©ã®æ©èœãããããããã¯Oracle MySQL Serverã®ãšã³ã¿ãŒãã©ã€ãºããŒãžã§ã³ã«ã®ã¿ååšããŸãã
XtraBackupããã
ãŸã -ãšããã§ãOracleãPerconaãMariaDBã§åäœããŸãã
MariaDBã¯3çªç®ã®ãªãã·ã§ã³ã§ãã 圌ãã¯åœŒãèªèº«ã®éãé²ãã ã®ã§ãç§ã¯ãããä»ãã©ãŒã¯ãšåŒã¶ããšãã§ãããã©ããããç¥ããŸããã ããšãã°ããªããã£ãã€ã¶ãŒãå®è¡ããå¥ã®ããŒã ããããŸãã Oracle MySQLãšåãã¯ãšãªãäœæã§ããŸããããªããã£ãã€ã¶ãŒã¯èšç»ãç°ãªãæ¹æ³ã§äœæããç°ãªãå ŽåããããŸãã
ããšãã°ã
ã¬ããªã±ãŒã·ã§ã³ ã«é¢ããŠã¯ ã
GTID㯠Oracle MySQL Serverãš
ã¯å®å
šã«ç°ãªããŸãã Oracle MySQL ServerãŸãã¯Percona ServerããGTIDãèªã¿åãããšã¯ã§ããŸããã MariaDBã®ããŒã¿ãã£ã¬ã¯ããªãååŸããŠãPerconaãŸãã¯MySQLãµãŒããŒã§GTIDã䜿çšããããšã¯ã§ããŸããã å³å¯ã«èšãã°ãMariaDBã¯å€éšåœ¢åŒã®GTIDãæ€åºããŠããšã©ãŒãè¿ããŸãããåã«ç¡èŠããŸãã ãã®éã¯çå®ã§ã¯ãããŸããã 圌ãã¯å°ã暪ã«ãªããŸãããååãšããŠåœŒããžã®ç§»è¡ã¯ç°¡åã§ãã ãã ããä»ã®ãµãŒããŒã«ã¯ãªãæ©èœãããããããŸãã¯åãæ©èœãç°ãªãæ¹æ³ã§å®è£
ãããŠããããã
å
ã«æ»ãããšã¯ãã§ã«å°é£ã§ãã
Drizzleã®ãããªãããžã§ã¯ãããããŸãã-ãã®ãããªæå°éã®MySQLãµãŒããŒã§ãããããã¯ã«ãŒãã«ã®ã¿ãæ®ã£ãŠããŸããã ãããã圌ã¯çŸåšæé·ããŠããŸããã
Facebookã®
ãã©ãŒã¯ãAlibabaã® ãã©ãŒã¯ãªã©ãäŒæ¥ã®ãã©ãŒã¯ããããŸãã ãããã¯ãããã®äŒæ¥ã§äœ¿çšãããŠããŸãã ããšãã°ãAlibabaã«ã¯
ç©ççãªè€è£œããããŸãã 圌ãããœãŒã¹ã³ãŒããéãããã©ããã¯ãŸã ããããŸããããŸãã¯ãŸã çŽæããŸãã ãã ããä»ã®ãµãŒããŒã«ã¯ãªããã®ãè©Šãããšãã§ããŸãã ãã ãããããã®äŒæ¥ã«ããçŠç¹ãåœãŠãŠããŸãã
Facebookã«ãã£ãŠéçºãããã¹ãã¬ãŒãžãµãã·ã¹ãã
MyRocksããããŸãã ãã§ã«Percona ServerãšMariaDBã®äž¡æ¹ã«ãããŸãã Percona Serverã«ã¯è©Šçšçãããããã¹ããšãªã¢ã§å©çšã§ããŸããMyRocksã®æè¡ãµããŒãã¯PerconaãšMariaDBã«ãã£ãŠæäŸãããŸãã
ã¢ããŸã³ã®ãããªãã©ãŒã¯ããã
ãŸã -圌ãã¯ç¬èªã®
ãªãŒãã©ãæã£ãŠããŸãã ãããããããã®ãœãŒã¹ã¯éããããŠããŸãã MySQLãœãŒã¹ã¯GPLã®äžã§ã©ã€ã»ã³ã¹ãããŠããã補åãé
åžããããªãå Žåã§ã䜿çšã§ããŸãã GPLã§ãã®ç¬éãå©çšããŸãã ãã ããAmazon Auroraã§ãœãŒã¹ã³ãŒãã確èªããããšã¯ã§ããŸãããå€éšããäœããèŠã€ããããšã¯éåžžã«å°é£ã§ãã
PG DayïŒå°æãšã³ãžã³ã¯ã€ããªãã®ãŒçã«InnoDBã®ãããªå®è©ã®ãããšã³ãžã³ã®éçºã§ããããããšãæ ¹æ¬çã«æ°ããéçºïŒäŸãã°ãMyRocksïŒã§ããïŒLightïŒ MyRocksã¯ç¬èªã®ãšã³ãžã³ã§
ã¯ãªãããã®ãœãŒã¹ã³ãŒãã¯å
¬éãããŠãããæè¿GPLã«ãªããŸããã ã©ãããŠå§ãŸã£ãã®ïŒ InnoDBã§ã¯ãã€ã³ããã¯ã¹ã¯
BããªãŒã«ä¿åãã
ãŸã ã ããã¯èªæžã«æé©ã§ãã ãã ããæ¯åãããªãŒããæžãæããå¿
èŠããããŸãã ãããæ¹åããããã«ãRocksDBã¯
LSMããªãŒãäœæããŸãã ã ãã®äžã§ãããŒã¿ã¯æåã«
memtableã«æžã蟌ãŸãã次ã«
å
æžãlogã«æžã蟌ãŸããŸã ã äžè¬ã«ãMongoDBçšãšMySQLçšã®2ã€ã®RocksDBå®è£
ããããŸãã MyRocksã¯MySQLã®ãµãã·ã¹ãã ã§ãããFacebookã®GitHubã§é·ãéãªãŒãã³ãœãŒã¹ã§å©çšã§ããŸããã Facebookã®ãããªãŒãã§äœ¿çšã§ããŸãã çŸåšãMariaDBã®Perconaãªããžããªã§å©çšã§ããŸãã æ©èœã¯FacebookåŽã§è¡ãããŸãããMariaDBãŸãã¯Perconaã®ããããã§ãµããŒããããŸãã ãšããã§ãç§ãã¡ãæ©èœãå®è¡ããŸãã
PG DayïŒInnoDBã¯ãŸã æšæºã®MySQLãµãŒããŒãšã³ãžã³ã§ããïŒã¹ãŽã§ã¿ ïŒã¯ãã
PG DayïŒåœŒã¯å®å®ãéæããŸãããããããšãæ¹åãã¹ãç¹ã¯ãããŸããïŒSvetaïŒæ¹åã®äœå°ã¯ç¢ºãã«
ãããŸãã ãããã圌ã¯ãããã®ãšã³ãžã³ã®äžã§æãå®å®ããŠããŸãã ãµããŒããšã³ãžãã¢ãšããŠãInnoDBã䜿çšããã®ãæãç°¡åã§ãã ãããããç§ã¯åœŒãšæãé·ãåããããæ°ãããšã³ãžã³ã§ã¯ãªãã£ããšããäºå®ã«ããã ããããããŠãŒã¶ãŒããŒã¹ã倧ããããã§ãã InnoDBã®å§çž®ã¯ã代æ¿ãšã³ãžã³ã®TokuDBããã³MyRocksãããæªããšããŸãããã ããŒãžã§ã³8.0ã§ã¯
ãäžå®ã®è² è·ã®äžã§èªã¿åãã³ããããéå§ãã ãå埩å¯èœãªèªã¿åãããã
ããã©ãŒãã³ã¹ãäœäžããèããæªåããç¶æ³ãä¿®æ£ããããšãçŽæããŸããã 8.0ã§ä¿®æ£ããããšãçŽæããŸãããããããŸã§ã®ãšããå©çšã§ããŸããã 圌ãã¯ãã³ãããŒã¯ã瀺ããŸããããã³ãŒãã¯ãŸã å©çšã§ããŸããã ãã¡ãããInnoDBã§æ¹åã§ããããšã¯ä»ã«ãããã€ããããŸãã
PG DayïŒããªãã¯ããµããŒããšã³ãžãã¢ãšããŠãå€ãã®å ŽåInnoDBã§åããŠãããšèšããŸããã å®æçã«äœ¿çšããæ°ããããŒãžã§ã³ã®æ©èœã¯ãããŸããïŒSvetaïŒç§ãã話ããããç§ã®ãæ°ã«å
¥ãã®æ©èœã¯
Performance Schemaã§ãã æ®å¿µãªããããã®ãããªããšããããŸããèªåãéçºè
ã§ãããšãã¯ãã©ã®ããŒãžã§ã³ã§ãå
¥ããŠãæŽæ°ããå¿
èŠããããŸãããšèšãããšãã§ããŸãã ãŸãããµããŒããšã³ãžãã¢ã®å Žåãå€ãããŒãžã§ã³ã§ã¯ããŸããŸãªè©±ãèµ·ãããŸãã æè¿ãããŒãžã§ã³5.1ã®ã¯ã©ã€ã¢ã³ãããããŸãããããã¯10幎éãµããŒããããŠããããé·ãéãµããŒããçµäºããŠããŸãã
5.7ã«æ°ããããã©ãŒãã³ã¹ã¹ããŒãããŒã«ããããç»å Žãããããã¿ããªã«
5.7ã«ã¢ããã°ã¬ãŒãããŠãããããã§ãã 以åã®ããŒãžã§ã³ã§ã¯ãã¡ã¢ãªãã©ãã«è²»ããããŠããã®ããã¬ããªã±ãŒã·ã§ã³ã¹ãã¬ãŒãžã¹ã¬ãããInnoDBãŸãã¯ä»ã®å Žæã®ããããã§æ確ã§ã¯ãããŸããã§ããã ãã®æ
å ±ã¯çŸåšå
¥æå¯èœã§ãã ããã§
ãããã¯ã«é¢ãã詳现æ
å ±ãååŸã§ããŸãã 以åã¯å©çšã§ããªãã£ãå
šãæ°ãã
ã¡ã¿ããŒã¿ããã¯ã§ãã ã»ãã·ã§ã³ã§ã¹ããŒã¿ã¹å€æ°ã衚瀺ããããã®ããŒã«ããããŸãã ãµãŒããŒãäœããã®äœæ¥ãè¡ããšããšã³ãžã³ãæžã蟌ãããŒã¿ã®è¡æ°ããŸãã¯äœæãããäžæããŒãã«ã®æ°ã確èªã§ããŸãã ãããã1000ã®æ¥ç¶ãããå Žåã1000å
šäœããŸãã«ãã®ãããªåèšã§ããããšãç¥ã£ãŠããŸãã æã掻æ§ã®é«ãååç©ã®1ã€ãèŠãããšãèå³æ·±ãå Žåã5.7以åã¯ããã¯äžå¯èœã§ãããã5.7ã§ã¯å¯èœã§ããã 5.7ã«ã¯å€ãã®ããã©ãŒãã³ã¹ã¹ããŒãããŒã«ããããŸãã ä»ãããã¯ç§ã®ãæ°ã«å
¥ãã®ããŒã«ã§ãã ã¿ããªã«æ°ããããŒãžã§ã³ã«åãæ¿ããŠã»ããã
PG DayïŒç§»è¡ãšããã°ã å€ãããŒãžã§ã³ãæã£ãŠãã人ã¯ãŸã ããŸãã ããã¯å¹³å¡ãªæ inessãšç¡è²¬ä»»ã§ããããŸãã¯å€ãããŒãžã§ã³ããæ°ããããŒãžã§ã³ãžã®ç§»è¡ã«å®¢èŠ³çãªå°é£ããããŸããïŒSvetaïŒç§»è¡ã®é£ããã¯ã»ãšãã©ãã®ãããªãã®ã§ãã 24æéãé±7æ¥åãå¿
èŠãããäŒæ¥ãããå Žåãåé¡ãçºçããŸãïŒ
ããŠã³ã¿ã€ã ãæå°éã«æããæ¹æ³ã¯ ïŒ ç¬¬äºã®ç¬éã ã¡ãžã£ãŒãã©ã³ãããã¡ãžã£ãŒãã©ã³ãã«ã¢ããã°ã¬ãŒãããå Žåã
éäºææ§ã
ãããŸãã éäºææ§ã«ã¯ãããŒã¿ã¹ãã¬ãŒãžåœ¢åŒãšãªããã£ãã€ã¶ãŒã«ããã¯ãšãªãã©ã³ã®æ§ç¯ã«é¢é£ãããã®ã®2çš®é¡ããããŸãã
æåã®ã¿ã€ãã®éäºææ§ã¯ãéåžžã«é£ããã±ãŒã¹ã«ã¯é©çšãããŸããã ããŒãžã§ã³5.1ããæ°ãããã®ã«ç§»è¡ããå Žåã
dump / reloadãå®è¡ããå¿
èŠããããŸãã ãšãŠãé
ãã§ãã ãã©ã³ããããã©ã³ããžã®åçŽãªã¢ããã°ã¬ãŒãã¯ç°¡åã§ãããå€ãããŒã¿ãã£ã¬ã¯ããªãååŸããæ°ããããŒãžã§ã³ãèµ·åããŠmysql_upgradeãå®è¡ããŸãã æè¿ã®ããŒãžã§ã³ã§ã¯ãOracleã¯ãã®ããã»ã¹ãæå°éã®åŽåã§å®çŸããŠããŸãã ããããããã§ãåé¡ãçºçããå ŽåããããŸãã ãŸãã¯ãããŒãã«ãåæ§ç¯ããå¿
èŠããããŸã
ãALTER TABLE ã
ENGINE = InnoDBãèšè¿°ããŸããããããäžè¬ã«é«éã§ã¯ãããŸããã
å¥ã®ç¬éã ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠè¡ãããèŠæ±ã¯ãæåã«èšè¿°ãããããŒãžã§ã³ã«å¯ŸããŠæé©åãããŸãã èå³æ·±ãããšã«ããã°ãä¿®æ£ããããªããã£ãã€ã¶ãŒã®åäœãæ¹åãããæŽæ°åŸã«äžéšã®ã¯ãšãªã®åäœãé
ããªããŸããã å€å
žçãªã±ãŒã¹ããããŸããã ããã¯ã©ã€ã¢ã³ãã¯æ¬¡ã®ããã«æžããŠããŸãããæŽæ°ãå®äºãããªã¯ãšã¹ãã®åŠçãé
ããªããŸãããã ç§ã¯èšããŸãïŒãããªãã®ãã°ãéã£ãŠãã ãããã 圌ã¯éä¿¡ãããã¹ãŠã®ãªã¯ãšã¹ãã¯F
ORCE INDEXã䜿çšããŠæžã蟌ãŸããŸãã ãFORCE INDEXãåé€ããŠã¿ãŠãã ãããã 圌ã¯åãé€ããŠèšã£ãïŒãã¯ããä»ã§ã¯å€ãããŒãžã§ã³ãããéãåäœããŸããã ããã¯ãã¹ãŠè¡ãå¿
èŠããããŸãã
PG DayïŒããªãã¯ãMySQLã®åé¡ã®ãããã°ãšè§£æ±ºãå°éãšããæ¬ãMySQL Troubleshootingãã®èè
ã§ãã 誰ã«åœ¹ç«ã€ã®ã§ããããïŒSvetaïŒç§ã¯MySQLãµããŒãã§åããŠããããã°ãæ±ã£ãŠããŸããã 人ã
ã¯åã質åãããŸããã MySQLã«åé¡ãããå Žåã®å¯ŸåŠ
æ¹æ³ã«é¢ããæ
å ±ã1ãæã«åéããå¿
èŠã
ãããšæããŸããã åã質åã«çããã®ã§ã¯ãªããããè€éãªåé¡ã解決ãããã£ãã®ã§ãã æ¬ã®ã¢ã€ãã¢ã¯æ¬¡ã®ãšããã§ãã MySQLã®äœ¿çšæ¹æ³ãã¯ãšãªã®äœææ¹æ³ãéå§æ¹æ³ãç¥ã£ãŠããŸãã ããããåé¡ããããŸããééã£ãããŒã¿ãè¿ãããåäœãé
ããªããŸãã ã©ããã ç§ã¯ãã®æ¬ã«ãã®è³ªåã«çããŠã»ããã£ãã
PG DayïŒãã®æ¬ã¯ãå¹
åºã人ã
ã察象ãšããŠããŸãã MySQLãæ±ã人ã¯èª°ã§ããæããªè³ªåãããã®ããããããã«ãããèªãã¹ãã§ããïŒSvetaïŒååãšããŠãã¯ãã å¿
ãããæãã§ã¯ãããŸããããäœããã¹ãããææ¡ã§ããã ãã§ãã æ®å¿µãªããããã®æ¬ã¯2012幎ã«ãªãªãŒã¹ããããããææ°ã®æ©èœã¯ãããŸããã ãããããã®ååã¯äŸç¶ãšããŠéèŠã§ããMySQLã«äœããã®åé¡ãçºçããå Žåã®å¯ŸåŠæ¹æ³ãç解ããã«ã¯ãæ¬ãéãå¿
èŠããããŸãã
PG DayïŒæ°æ©èœã®åé¡ã«ã€ããŠã第2çã®æ¬ãåçºè¡ããäºå®ã¯ãããŸããïŒ
SvetaïŒç§ã¯ä»ããããã£ãŠããŸããããèšç»ããŠããŸãã
PG DayïŒãšããã§ãæ°æ©èœã«ã€ããŠã ç§ã®ç¥ãéããããªãã¯MySQLã§JSONãµããŒããå®è£
ããåé¡ã«è²¢ç®ããŸããã ãã®çµéšã«ã€ããŠæããŠãã ããã ä»ã§ã¯ãããŒã¿ããŒã¹ã®äžçã§ã¯éåžžã«æµè¡ã®åŸåã§ããSvetaïŒå®éãããããã¹ãŠã¯éåžžã«èå³æ·±ããã®ã§ãã
JSONãµããŒãã¯ãç§ãMySQLãã¯ãã«ã«ãµããŒããšã³ãžãã¢ã«ãªãåïŒ2006幎以åïŒã«è¡šç€ºãããäœæ¥ãã°ã§ãã MySQLããµããŒããã
æ©èœã«ã€ããŠèª¬æããŸããã ãããã誰ãããããåãããªããã°ãªããããããžã§ã¯ãããµããŒãããããã«ããŸããã ãã®åé¡ã«åãçµãã§ã¿ãŸãããïŒ MySQLã¯
XMLé¢æ°ã®çµéšãç¹°ãè¿ããããããŸããã§ããã æ©èœã¯å®è£
ãããŸããããã³ãã¥ããã£ãæãã§ãããšããã«æ©èœããŸããã§ããã 圌ãã¯ç§ã
UDFæ©èœãšããŠ
èšèšãããã¿ã€ããäœããšæ±ºããŸããã ãã®èšèšãããã¿ã€ãã¯ãMySQL Labsãããžã§ã¯ããšããŠå©çšã§ããŸããã 人ã
ã¯ããã䜿çšãããã°ãéããŸããã ãã®åŸãæé©åããŒã ã¯ã
èšèšãããã¿ã€ãã«åºã¥ããŠããµãŒããŒã¬ãã«ã§æ©èœãå®è£
ããæé©åãããŠè¿
éã«æ©èœããããã«ããå¿
èŠããããŸãã
2012幎ã«ãç§ã¯æåã®ããŒãžã§ã³ãäœæãã圌女ã¯å
éšã¬ãã¥ãŒã«è¡ããŸããã ãããã圌ãã¯ç§ã«ãã¹ãŠãããçŽããªããã°ãªããªããšèšã£ãã ç§ã¯ãããããçŽãã2013幎ã«ããããäžè¬ã«å
¬éããŸããã ãã®æç¹ã§ãæ°ããæ©èœã®èŠæ±ãæ¥ãŸãã
ãjson_depthé¢æ°ãš
json_lengthé¢æ°ãïŒã³ãã¥ããã£ã®èŠæ±ã§ïŒç»å ŽããŸããã ç§ã®çºæãäŒç€Ÿã®çºæã§ã¯ãããŸããã§ããã ç§ã¯ãã°ãä¿®æ£ããæ°ããæ©èœãè¿œå ããŸããã ãã¶ã€ã³ã¯æŽç·ŽãããŸããã æåŸã«ãJSONã®SQLæšæºã®èšèšãããã¿ã€ããç»å ŽããŸããã çŸåšæ¿èªãããŠãããã©ããããããŸãããç£èŠãåæ¢ããŸããã
æ§æãå®è£
ãããŸããã
UDFé¢æ°ã«ã¯ãæåã¯ããå¥åŠãªæ§æããããŸããã ããããæ§æã«äœãåãçµãã§ããŸããã§ãããæšæºã«äœãèµ·ããããæ確ã§ã¯ãªãã£ãããã§ãã MySQLãããããµãŒããŒã³ãŒãã«åã蟌ãå ŽåãMySQLã«ããŸãåºæã§ã¯ãªãããšãå€æããããã«ãããã£ãã®ã§ãæ§æã¯éåžžã«ç°¡åã«äœ¿çšã§ããŸããã ãã¹ãŠããã¹ãããããšããªããã£ãã€ã¶ãŒã®ããŒã ãããŒã¿åãäœæããŸããã
ãã©ã°ã€ã³å¯èœã§ã¯ãããŸããã ç§ã¯åœŒãã®å©ããªãã§ã¯ãããããããšãã§ããŸããã§ããã
PG DayïŒJSONã®éçºãç¶ç¶ãããæ©èœãè¿œå ãããŸãããïŒã¹ãŽã§ã¿ïŒã¯ãã ãŸã ãªãªãŒã¹ãããŠããªãããŒãžã§ã³8.0.2ã§ã¯ã
JSON_SETããã³
JSON_REPLACEé¢æ°ã®ã€ã³ãã¬ãŒã¹æŽæ°ãè¡ã
ãããš
èããŠããŸãã JSONã§çŸåšäœãèµ·ãã£ãŠããŸããïŒ ååãšããŠãJSONã¯å€§ãããŠé·ãããã¥ã¡ã³ãïŒããšãã°ã1ãããã€ãïŒã§ãã ããã€ãã®èŠçŽ ãããšãã°æ¬ã®ååãå€æŽããããšããŸãã 次ã«ããã®1ãããã€ããå®å
šã«æžãæããå¿
èŠããããŸãã ããŸãå¹æçã§ã¯ãããŸããã 1ãããã€ãã®æžãæãã¯æããªãã ãã ãããã®ãããªè¡ãå€æ°æžãçŽãå¿
èŠãããå Žåã¯ãå¹çãæªããªããŸãã 8.0.2ã®åœŒãã¯ãã€ã³ãã¬ãŒã¹æŽæ°ãè¡ã£ãããšãã€ãŸãJSONããã¥ã¡ã³ãã®ããäžéšã®ã¿ãæŽæ°ãããããšãçºè¡šããŸããã ããã¯ãJSONãé²åããŠããããšã瀺åããŠãããããã«èå³æ·±ãããšãããã§ãããã
PG DayïŒãã®ãããªè©³çŽ°ã§è©³çŽ°ãªè©±ãã©ããããããšãã PG Dayã®å€ã«è¡ããã¹ã¿ãŒã¯ã©ã¹ã®å°ããªçºè¡šããé¡ãããŸãã MySQLã®ããã©ãŒãã³ã¹ã®ãããã°ã«çŠç¹ãåœãŠãŸãã ãã¹ã¿ãŒã¯ã©ã¹ã¯ã倧ãããŠèšå€§ãª8æéãã®äºå®ã§ãã ã©ã®ãããã¡ã€ã«ã¹ãã·ã£ãªã¹ãã圌ã«åœ¹ç«ã€ã§ããããïŒ
SvetaïŒ MySQLã®ããã©ãŒãã³ã¹ã«åé¡ãããã
MySQLãé«éåããããã«äœããããã人ã«åœ¹ç«ã¡ãŸãã ãã¹ã¿ãŒã¯ã©ã¹ã§ã¯ãåºæ¬ããå§ããŠããããã°ãé²ããåã«ç¥ã£ãŠããã¹ãããšãåäœãé
ããã®ãæ£ç¢ºã«ææ¡ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã¹ããµãŒããŒãšã¯äœã§ãã ãããã䜿çšããŠããã©ãŒãã³ã¹ã®åé¡ããããã°ããæ¹æ³ã 4ã€ã®äž»èŠãªéšåããããŸãã
é
ãã¯ãšãªãšãã®
æé©åã§ãã
. ,
MySQL.
-, ,
DBA . - . , , - . â , , .
,
MySQL Command-Line , Linux. , , .
? - :
SQL- ,
. . .
PG Day: . , , , , . , ?: , MySQL . â «
MySQL », Oracle MySQL. . â
Percona Database Performance Blog . Percona. , Percona . Oracle, Percona Blog, .
,
âMySQL Troubleshootingâ .
âHigh Performance MySQLâ , . , â
âMySQL High AvailabilityË® . â
MySQL replication teamïŒãã£ãŒã«ãºãã«ãããããã³ããŒã«ãã©ãŒã¹ã¿ã«ãã³ãMatsã¯MySQLããŒã ãéè·ããŸãããCharlesã¯ãMySQLãŠãŒãã£ãªãã£ã«é¢äžããŠããŸããLarsã¯ãã¬ããªã±ãŒã·ã§ã³ããŒã ããã倧ããªããŒã ã®ãããŒãžã£ãŒã§ããããã«ããããããã圌ãã¯ããã«ã€ããŠæžããïŒã©ã®ããã«ç°ãªãè€è£œãè¡ãããããã©ã®ãããªãã¬ãŒãããšã¯ãããããåé¿ããæ¹æ³ãååã®æ¬ãããã«å°å¿µããŠããŸããããŒãããã¯ã¯ãMySQL Fabricã«ãªã£ããœãªã¥ãŒã·ã§ã³å°çšã§ãããŸããMySQLãå«ããã¹ãŠã®ããŒã¿ããŒã¹ã«é©ãããSQL Antipatternsããšããèè
ãBill Karwinãšããæ¬ããããŸãããŸã æ¬ããããŸããããããç§ã¯ããããããã«ãã ããã§ãããã