ããŒã¿ããŒã¹ã®æé©åãšããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãµãŒãã¹ãé ãã¯ãšãªã蚺æããããã«ããã¯ãä¿®æ£ããæå€§éã®ã¹ã«ãŒããããšæå°éã®ã¬ã€ãã³ã·ãå®çŸããããã«ããŒã¿ããŒã¹ããã¥ãŒãã³ã°ããŸãã
å§ãã
ããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹åé¡ã¯æéãšãšãã«æªåããŸããææã®é ãããå§ãŸã£ããã®ããã¢ããªã±ãŒã·ã§ã³ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«çµ¶ããè² æ ããããããã«ãªããŸããç§ãã¡ã¯äœç³»çãªã¢ãããŒããåããŸãïŒçŸå®çãªè² è·ã®äžã§ãããã¡ã€ãªã³ã°ããããŒã¿ã«åºã¥ããŠæ ¹æ¬åå ãç¹å®ããæž¬å®å¯èœãªæ¹åãããããå ·äœçãªæé©åã宿œããŸãã
PostgreSQLãMySQLãMongoDBãããã³DynamoDBãããã€ãã£ãã®ãããã¡ã€ãªã³ã°ããŒã«ãpganalyzeãDataDog Database Monitoringãããã³ã«ã¹ã¿ã åæã¹ã¯ãªããã䜿çšããŠæé©åããŸãããœãªã¥ãŒã·ã§ã³ã«ã¯ãã€ã³ããã¯ã¹å€æŽãã¯ãšãªã®æžãæããæ§æãã¥ãŒãã³ã°ãããã³ãªãŒãã¬ããªã«ããã£ãã·ã³ã°ã®ãããªã¢ãŒããã¯ãã£ã®æ¹åãå«ãŸããŸãã
ããŒã¿ããŒã¹ã¯ãšãªãé ããããŒã¿ããŒã¹ã®CPU/ã¡ã¢ãªäœ¿çšçãé«ããæ¥ç¶ããŒã«ãæ¯æžãããå¿çæéãé·ããªããªã©ã®åé¡ãæ±ããã¢ããªã±ãŒã·ã§ã³ãåäžã®åé¡ã®ããã¯ãšãªã§ãããã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹åé¡ã§ãããç§ãã¡ã¯æ ¹æ¬åå ãç¹å®ãä¿®æ£ããŸãã
è² è·äžã§ããŒã¿ããŒã¹ããããã¡ã€ãªã³ã°ããæãé ãã¯ãšãªãç¹å®ãããªãœãŒã¹å©çšãã¿ãŒã³ãåæããŸãã
EXPLAINã䜿çšããŠé ãã¯ãšãªãæ·±ãæãäžããäžè¶³ããŠããã€ã³ããã¯ã¹ãç¹å®ããããã¯ç«¶åãåæããŸãã
ã¯ãšãªã®æžãæããå®è£ ããã€ã³ããã¯ã¹ã远å ããæ§æããã¥ãŒãã³ã°ããæ¥ç¶ç®¡çãæé©åããŸãã
æ¹åããã³ãããŒã¯ããååž°ããªãããšã確èªããããŒã¯æ¡ä»¶äžã§è² è·ãã¹ãã宿œããŸãã
ããã©ãŒãã³ã¹ããã·ã¥ããŒããé ãã¯ãšãªã¢ã©ãŒããå±éããæé©åã¬ãã¥ãŒã®ãµã€ã¯ã«ã確ç«ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®é床ãäœäžãããŠããããŒã¿ããŒã¹ã®åé¡ã蚺æããä¿®æ£ããŸãããã
åœç€Ÿã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã¯ãã¹ããŒã¯ãšãªåæãã€ã³ããã¯ã¹æé©åãèšå®ãã©ã¡ãŒã¿ãã¥ãŒãã³ã°ãã³ãã¯ã·ã§ã³ããŒã«ãµã€ãžã³ã°ãããã¥ãŒã ãšçµ±èšç®¡çããããŠã客æ§ã®ç¹å®ã®ããŒã¿ããŒã¹ãšã³ãžã³ã«åãããã¹ãã¬ãŒãžI/Oæé©åãã«ããŒããŸãã
MicrocosmWorksã¯ãããŒã¿ããŒã¹æé©åããã³ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãµãŒãã¹ã$20ã$50/æéã§æäŸããŠããŸããå€ãã®ã客æ§ã¯ããå¥çŽéå§ããæåã®1é±é以å ã«å€§å¹ ãªããã©ãŒãã³ã¹åäžã宿ããŠããŸãã
ã¯ããã¯ãšãªã®æžãæããè€åã€ã³ããã¯ã¹ã®è¿œå ãã¯ãšãªãã©ã³ãã³ãã®å®è£ ãçµåã®åæ§ç¯ã«ãããã¯ãšãªå®è¡æéãæ°åããããªç§ã«æ¥åžžçã«ççž®ããŠããŸããEXPLAIN ANALYZEã䜿çšããŠãããããããã«ããã¯ãç¹å®ãæé€ããŸãã
ç§ãã¡ã¯ãã¹ããŒã¯ãšãªãã°ãããã¯ç«¶åã¡ããªã¯ã¹ãI/OåŸ æ©çµ±èšããããã¡ãã£ãã·ã¥ãããçãã³ãã¯ã·ã§ã³ããŒã«å©çšçãåæããæ£ç¢ºãªããã«ããã¯ãç¹å®ããŸãããŸããã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ã¯ãšãªãã¿ãŒã³ããããã¡ã€ãªã³ã°ããŠãN+1ã¯ãšãªã𿬠èœããŠããã€ã³ããã¯ã¹ãç¹å®ããŸãã
ã¯ããpganalyzeãDatadogããŸãã¯ã«ã¹ã¿ã ã®Prometheus/Grafanaããã·ã¥ããŒããªã©ã®ããŒã«ã䜿çšããŠç¶ç¶çãªã¢ãã¿ãªã³ã°ãèšå®ããã¯ãšãªã®å£åãããã¯ã®ãšã¹ã«ã¬ãŒã·ã§ã³ããªãœãŒã¹æ¯æžã«é¢ããèªåã¢ã©ãŒããèšå®ããããšã§ããŠãŒã¶ãŒã«åœ±é¿ãåã¶åã«åé¡ãæ€ç¥ã§ããããã«ããŸãã