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ãšããæ¬ããããŸãããŸã æ¬ããããŸããããããç§ã¯ããããããã«ãã ããã§ãããã