Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
ã¯ããã« XTechã°ã«ã¼ã Advent Calendar 2021ã®16æ¥ç®ã¯ãiXITæ ªå¼ä¼ç¤¾ ã¨ã³ã¸ãã¢ã®è¦åããéããã¾ãã æè¿ããã£ã¦ãããã®ã¯é³æ¥½ç³»Vtuberã§ããVIRTUAFREAKè¯ãã£ãâ¦ã qiita.com æ¬é¡ ãã¼ã«ãªã©ãå°å ¥ããªãã¦ãSlowQueryãè§£æã§ããæ©è½ãMySQLã«ã¯åå¨ããã®ã§ãä»åã¯ãã®ä¸é¨ãç´¹ä»ãã¾ãã ã¡ãªã¿ã«ç§ãéçºãã¦ãããµã¼ãã¹ã®MySQLãã¼ã¸ã§ã³ã¯5.6ã§ãã 1. mysqldumpslow ä¸è¨ã§è¨ãã¨ã¹ãã¼ã¯ã¨ãªã¼ãã°ãã¡ã¤ã«ãè§£æãã¦å 容ã®ãµããªã¼ãåºåãã¦ãããæ©è½ã§ãã åæã¨ãã¦ã¹ãã¼ã¯ã¨ãªã¼ãã°ãåºåãã¦ããå¿ è¦ãããã¾ãã ä½¿ãæ¹ ã³ãã³ã â»åè¨å®è¡æéãé·ãé ã«10ä»¶ã®SQLãåºåãã mysqldumpslow -s at -t 10 /opt/fio1/slog/sp-prd-db1-slow.
PlanetScaleã¨ãããµã¼ãã¬ã¹DBãåãå¢ãã®ãããµã¼ãã¹ã¨èãã¦ãå ¬å¼ã«ã¯ã¤ãã¯ã¹ã¿ã¼ãããã£ãã®ã§ãã£ã¦ã¿ã¾ããã ç°å¢ PC: MacBook Pro (Intel Core 2016) OS: macOS Montery12.2.1 ã§ã¯æ¦è¦ãã確èªãã¦ããã¾ãã ãµã¼ãã¼ã¬ã¹DBã¨ã¯ ãµã¼ãããªããã®ã§ã¯ãªãããµã¼ã管çãæ¤è¨ãä¸è¦ AWS Lambda(NoSQL)ãªã© PlanetScaleã¨ã¯ PlanetScale年表 2010å¹´é YouTubeãæ¥æ¿ã«æé·ãããã¼ã¿ãã¼ã¹ãççºãããã«ãªã£ã¦ããã®ã§ãSuguæ°ã¨ããä¸äººã®YouTubeã®ã¨ã³ã¸ãã¢ããªã¼ãã³ã½ã¼ã¹ããã¸ã§ã¯ããVitess.ioãï¼ã´ã£ãã¹ï¼ãç«ã¡ä¸ãã 2016å¹´é MySQLã§ãã¤ããªãããã³ã«ãæ±ããããã«ãããã¨ã§ãVitessã¯YouTube以å¤ã®ä¼æ¥ã«ã¨ã£ã¦ãé åçãªã·ã¹ãã ã«ãªã
InnoDBã®ãã¼ã¿é åã¯ãã°ãã¡ã¤ã«ã¨ãã¼ãã«ã¹ãã¼ã¹ã¨ãããåã£ã¦ãåããªã2種é¡ã®ãã¡ã¤ã«ããæ§æããã¦ããããã°ãã¡ã¤ã«ã¯ååããããã¨ãã ã®ãã°ã ããåé¤ãã¦ãå¹³æ°ããªï¼ã¨æã£ã¦åé¤ãã¦ãã¾ãã¨ããåé¡ãå¾ãçµ¶ããªããããã§ã仿¥ã¯ãã°ãã¡ã¤ã«ã¨ãã¼ãã«ã¹ãã¼ã¹ã®é¢ä¿ã«ã¤ãã¦èª¬æãããã¨æãã InnoDBã®ãã°ãã¡ã¤ã«ã¯ãå¥åWAL - Write Ahead Logã¨å¼ã°ãããã®ã§ãååãæ¥æ¬èªã«ç´ãã¨ãåãã£ã¦æ¸ãè¾¼ãã§ããããã®ãã°ãã¨ã§ãå¼ã¹ãã ããããInnoDBã®ãã¼ãã«ã«å¯¾ãã¦è¡ãããæ´æ°ã¯ãå ¨ã¦ãã£ãããã°ã«æ¸ãè¾¼ã¾ããã®ã§ããããã©ã³ã¶ã¯ã·ã§ã³ãã³ããããããã¨ãinnodb_flush_log_at_trx_commit=1ãè¨å®ããã¦ããã°ãã°ãã¡ã¤ã«ã«æ¸ãè¾¼ã¿ãè¡ãããã0ã¾ãã¯2ã®å ´åã«ã¯ããã°ãããã¡ã¨å¼ã°ããé åã«ãã¼ã¿ãä¿æãããããã®å¾ãæéã
ããã ãè¦ãã°å¤§ä¸å¤«ï¼ã¼MySQLããã©ã¼ãã³ã¹ç£è¦ã®ããï¼ã·ã¹ãã ç·¨ï¼ ããã«ã¡ã¯ nob ã§ãã åç·¨ãããã ãè¦ãã°å¤§ä¸å¤«ï¼ã¼MySQLããã©ã¼ãã³ã¹ç£è¦ã®ããï¼ã¯ã¨ãªç·¨ï¼ãã®è¨äºããï¼å¹´åãçµéãã¦ãã¾ãã¾ãããã¡ãã£ã¨é·ããä¼ã¿ã§ãããããã®éã«èãã MySQL ããã©ã¼ãã³ã¹ç£è¦ã®å®æ¦çµé¨ãï¼ã·ã¹ãã ç·¨ï¼ã¨ãã¦ãå±ããããã¾ãï¼ ä»åã®ï¼ã·ã¹ãã ç·¨ï¼ã§ç´¹ä»ãããã㯠4 ã¤ã§ããï¼ã¯ã¨ãªç·¨ï¼ã®ããã«å ãã¦ããã®4ã¤ã«æ³¨ç®ãã¦é ããã° MySQL ã®ããã©ã¼ãã³ã¹ç£è¦ãããããªã§ãã ï¼ããï¼ï¼Load Average < (1 + (cpuæ°-1)/3) ï¼ããï¼ï¼Checkpoint Age ãæ°´å¹³ç·ã«ãªã£ããè¦æ³¨æ ï¼ããï¼ï¼MyISAM ã¯ç¡ãããç£è¦ ï¼ããï¼ï¼ä¸è½é¸æã¹ãã¼ãã° ãªãåç·¨ã¨åæ§ãã®è¨äºã§ã¯ç£è¦ãã¼ã«ã¨ãã¦Â Cacti 㨠Percona MySQL
MySQLã®ãã¥ã¼ãã³ã°ã«ããã¦é常ã«éè¦ã¨ãªãã¡ã¢ãª(ãããã¡)é¢é£ã®ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã ãã¥ã¼ãã³ã°ã®ãã¤ã³ã DSASã®ã¨ããDBãµã¼ã(å®ã¡ã¢ãª4GB)ã®å®éã®è¨å®å¤ ãã¾ã¨ãã¦ã¿ã¾ãã ã¾ããå¿ è¦ã¡ã¢ãªã®ç·éã®è¨ç®ãéçå¤ãè¶ãã¦ãªãããã§ãã¯ãã¦ãããã¹ã¯ãªãããç´¹ä»ãã¾ãã æ¯éãåèã«ãã¦ã¿ã¦ãã ããï¼ ã¾ãæåã«æ³¨æç¹ãã ãããã¡ã«ã¯2ã¤ã®ã¿ã¤ããããã¾ãã ã°ãã¼ãã«ãããã¡ ã¹ã¬ãããããã¡ ã°ãã¼ãã«ãããã¡ã¯mysqldå ¨ä½ã§ãã®ãããã¡ã1ã¤ã ã確ä¿ããããã®ã§ã ããã«å¯¾ãã ã¹ã¬ãããããã¡ã¯ã¹ã¬ãã(ã³ãã¯ã·ã§ã³)ãã¨ã«ç¢ºä¿ããããã®ã§ãã ãã¥ã¼ãã³ã°ã®éã«ã¯ã°ãã¼ãã«/ã¹ã¬ããã®éããæèããããã«ãã¾ãããã ãªããªããã¹ã¬ãããããã¡ã«å¤ãã®ã¡ã¢ãªãå²ãå½ã¦ãã¨ãã³ãã¯ã·ã§ã³ãå¢ããã¨ããã«ã¢ãã¨ããéã«ã¡ã¢ãªä¸è¶³ã«ãªã£ã¦ãã¾ãããã§ãã in
Created_tmp_disk_tables ã®æå³ MySQL ã®ãã¥ã¼ãã³ã°ããéã«ææ¨ã¨ããã¹ãã¼ã¿ã¹ã®ä¸ã¤ã« Created_tmp_disk_tables ã¨ãããã®ãããã¾ãã 詳ããã¯ãã£ã¨è©³ç´°ãªè¨äºãè¦ã¦ãããã°ããã§ãããã¯ã¨ãªå®è¡æã«ã¡ã¢ãªä¸ã«åã¾ããããªãã£ã䏿ãã¼ãã«ãããã£ã¹ã¯ä¸ã«ä½æããåæ°ãæå³ãã¾ãã åè:MySQLã®ãtemporary table (䏿ãã¼ãã«)ã ã¨ãtmp file(ãã³ãã©ãªãã¡ã¤ã«)ãã®éãã¨ãCopying to tmp tableãã¨ãcopy to tmp tableãã®éã | ç°èã«ä½ã¿ããã¨ã³ã¸ãã¢ã®æ¥è¨ ãããã䏿ãã¼ãã«ãè¥å¤§åããã®ã¯ãã¼ãã«ãã¯ã¨ãªã®è¨è¨ã«åé¡ãããå ´åãããã®ã§ã ã¾ãã¯ã¯ã¨ãªèªä½ãæ¹åãã¦å·¨å¤§ãªä¸æãã¼ãã«ãä½ãããã®ãæå¶ãã¹ãã§ããã 大ããªãã¼ã¿ã®éè¨ã宿çã«è¡ããªã©ãè¦ä»¶
â»RDSã¯ä½¿ã£ã¦ãã¾ããã è² è·ãè¦ã¦ã¿ã DBãµã¼ãã¼ã®è² è·ç¶æ³ãè¦ã¦ã¿ã¾ãã 彿ã®ç£è¦ãã¼ã«ã®ç»åããªãã®ã§ããã以ä¸ã®ç¶æ³ã§ããã LA(Load Average)ãçªãæãã¦ãã ãªã¯ã¨ã¹ãæ°ã¯ã常èçã«èãã¦ãããã»ã©ã§ããªã ã¡ã¢ãªã®ä½¿ç¨éã«ãã¾ãå¤åããªã swapã¯ãã¦ããªã ã¹ãã¬ã¼ã¸å®¹éãçµæ§é£ã£ã¦ãã WEBãµã¼ãã¼ããè¦ãã°ãå¦çå¾ ã¡ã®ã¾ã¾ããã»ã¹ãå¦çããã¦ããªãå ¸åçãªãã¿ã¼ã³ã ã£ãã¨æãã¾ãã DBãµã¼ãã¼ã¨ãã¦ã¯ãLAã«å¯¾ããã¡ã¢ãªã®ä½¿ç¨éããã£ã¦ããªãããã«æããã¾ããã 仮説 ä¸è¨ã®ç¶æ ããã仮説ãç«ã¦ã¾ãã ã¹ãã¼ã¯ã¨ãª ãé »çºãã¦ããã®ã§ã¯ãªãã ã¡ã¢ãª ãæ£ããå²ãå½ã¦ããã¦ããªãã®ã§ã¯ãªãã å種ãã° ã®è¨å®ãé©åã§ã¯ãªãã®ã§ã¯ãªãã ä»®èª¬ãæ¤è¨¼ãããã¨ã§ã対çããã¦ããã¾ãã è¨å®ãè¦ç´ã ä¸è¨ã®ä»®èª¬ã®è¨å®ã¯ãMySQLã®è¨å®ãã¡ã¤ã«ã§ããã
InnoDBããã¥ã¼ãã³ã°ããéã«ãçã£å ã«ç¢ºèªãããã®ã¨ããã°InnoDBãããã¡ãã¼ã«ãããã¾ããããã¯é »ç¹ã«ã¢ã¯ã»ã¹ããããã¼ãã«ãã¼ã¿ãã¤ã³ããã¯ã¹ãã¼ã¿ããã£ãã·ã¥ãããªã¯ã¨ã¹ããé«éã«å¦çããããã®éè¦ãªæ©æ§ã§ããåºæ¬çã«ã¯ãããã¡ãã¼ã«ã¯å¤§ããªå¤ãè¨å®ããããã«ã¬ã¤ãããã¦ãã¾ãããã¼ã¿ãµã¤ãºããã¹ã¦ãããã¡ãã¼ã«ãµã¤ãºã«åã¾ãããã«è¨å®ããã¨å®å®ãããµã¼ãã¹ã®æä¾ãå¯è½ã§ãã ãããã¡ãã¼ã«ãµã¤ãºããããã¼ã¿ãµã¤ãºã大ããå ´åã¯ããã£ã¹ã¯ã¸ã®ã¢ã¯ã»ã¹ãé »çºãã¦éç¨ãã¦ãããµã¼ãã¹ã«å½±é¿ããããã¨ãããã¾ãããããããµã¼ãã¹ãé »ç¹ã«ã¢ã¯ã»ã¹ãããã¼ã¿ã¯æ±ºã¾ã£ã¦ãã¦ï¼éå»ã®ãã¼ã¿ã«ã¯ã»ã¨ãã©ã¢ã¯ã»ã¹ããªãâ ï¼â ããã®ãã¼ã¿ããã¹ã¦ãããã¡ãã¼ã«ä¸ã«ããããã«åé¡ãªããµã¼ãã¹ãéç¨ã§ãããã¨ãããã¾ãããã®ããã«ããµã¼ãã¹ã®ç¹æ§ã«ããã¯ã¼ãã³ã°ã»ãããéè¦ã«ãªãã¾ãã ä»åã¯ãã
JDK 16 ã§å°å ¥ããã JEP 396 ã«ã注æ!! ï¼JJUG CCC 2021 Springï¼
ãã®ã¨ã³ããªã¯MySQL Casual Advent Calendar 2015ã®10æ¥ç®ã®ã¨ã³ããªã§ãã å æ¥ã®MySQL Casual Talks Vol8ã§@karupaneruraããããã©ã¡ã¼ã¿ã®æ¯ãè¿ãã®ãããªçºè¡¨ãããã¦ããã®ã§ãæ¨ä»ãã¾ãæ¸ãããªããªã£ãMySQLã«çµ¡ãè¨å®ãã©ã¡ã¼ã¿ã«ã¤ãã¦æ¸ãã¾ãããããªãã®ã¡ã¢ãª(32GBã¨ã)ãSSDã¨ã使ã£ã¦ãäºãåæã«ãããããªå 容ã¨ãªãã¾ãã ä¾åãã¦å¤æ´ããæ¹ãè¯ããã©ã¡ã¼ã¿ãããã®ã§å 容ãåå¾ã«é£ã³ã¾ããã容赦ä¸ãããã¾ãã½ã¼ã¹ã³ã¼ãããã£ã¤ãèªãã ããã§ã¯ãªãããã³ããã¼ã¯ä¸ã®æåããæ¨æ¸¬ãã¦ããç®æãå¤åã«ããã¾ããMyISAMã®ãã¼ãã«ããµã¼ãã¹ç¨ãã¼ã¿ãã¼ã¹ã«åå± ããäºãèæ ®ãã¦ãã¾ããã çµæ§çªè²«ã§æ¸ãã¦ããã®ã§å¾ããå¾®å¦ã«ä¿®æ£ããå¯è½æ§ãããã¾ãã InnoDBã®ãã©ã¡ã¼ã¿ innodb_buffer_pool_
ãã¡ã®ä¼ç¤¾ã§ããIO-Drive2ãSSDã使ç¨ãããµã¼ããå¢ãã¦ããã ãã£ã¹ã¯æ§è½ãè¯ããµã¼ãããã£ã¦ããMySQLå´ãããã«ããã¯ã«ãªã£ã¦ãããå®ã®æã¡è ãã«ãªã£ã¦ãã¾ããããã§ãMySQLã§å¶éããã¦ããä¸ã¤ã«innodb_io_capacityã¨ãããã®ãããã®ã§ãã®è¨å®ã«ã¤ãã¦èãã¦ã¿ããã¨æãã ããããMySQLããã£ã¹ã¯I/Oãå¿ è¦ã¨ããå¦çã¯ã©ã®ãããªãã®ããããèãã¦ã¿ããã ã»ãã£ãã·ã¥ããã¦ããªãDBãã¼ã¿ã¸ã®ã¢ã¯ã»ã¹ãçºçããæã ã»æ´æ°ããããã¼ãã£ãã¼ã¸ããã£ã¹ã¯ã¸ãã©ãã·ã¥ããæã ã»ã¨ã©ã¼ãã°ãåºåãããæã ã»ãã¤ããªãã°ãåºåãããæã ã»ã¹ãã¼ã¯ã¨ãªãã°ãåºåãããæã ã»ãã©ã³ã¶ã¯ã·ã§ã³ãã°ãåºåãããæã ã»è¡¨ãDBã®å®ç¾©ã使çã§ãã¼ãã«ã¹ãã¼ã¹ã®æ´æ°ãçºçããæã ä»ã«ãããã¨æãããI/Oå¦çã«ã¯ãã©ã¢ã°ã©ã³ããããã¯ã°ã©ã¦ã³ãã®ï¼ç¨®é¡ã
Percona Data Performance Blogã®ç¿»è¨³ãPercona CEOã®Peter Zaitevã«ãããMySQLã®ã¡ã¢ãªã¼ä½¿ç¨éãã©ã®ããã«æ±ºããã¹ãããã¾ããããæ±ºããæã«æ°ã«ããã¹ããã¨ã¯ä½ãã«ã¤ãã¦ã®ã¾ã¨ãã ãã®è¨äºã§ã¯ãæé©ãªMySQLã®ã¡ã¢ãªã¼ä½¿ç¨éãè¨å®ããããã®ãã¹ããã©ã¯ãã£ã¹ãæ±ããã¨æãã¾ãã 使ç¨ã§ããã¡ã¢ãªã¼ã®ãªã½ã¼ã¹ãã©ã®ããã«ä½¿ããæ£ããè¨å®ããã®ã¯ãMySQLãæé©ãªããã©ã¼ãã³ã¹ã§ãã¤å®å®ãã¦ä½¿ãããã«æãéè¦ãªãã¨ã®ã²ã¨ã¤ã§ããMySQL 5.7ã§ã¯ãããã©ã«ãã®è¨å®ã§ã¯é常ã«å°ãªãéã®ã¡ã¢ãªãã使ãã¾ãããããã©ã«ãã®ã¾ã¾ã«ãã¦ããã®ã¯ãæãè¯ããªããã¨ã®ã²ã¨ã¤ã§ããããããããä¸é©åã«è¨å®ãã¦ãã¾ãã¨ãããã©ã¼ãã³ã¹ãæ´ã«æªããã(ãããã¯ã¯ã©ãã·ã¥ãã)ãã¨ã«ããªãããã¾ããã MySQLã®ã¡ã¢ãªä½¿ç¨éãè¨å®ããã«ããã£ã¦ã®æå
ããã«ã¡ã¯ããµã¼ãã¹éçºé¨ã®èå¼ (@a_bicky) ã§ãã çªç¶ã§ãããRDBMS ã®æ¢åã®ãã¼ãã«ãè¦ã¦ã¿ãããä½ã§ãããªã«ã¤ã³ããã¯ã¹ã ãããªã®ï¼ãã¿ãããªçµé¨ã¯ããã¾ãããï¼ä¸è¦ãªã¤ã³ããã¯ã¹ã¯å®¹éãå§è¿«ããããæ¿å ¥ãé ããªã£ããã¨è¯ããã¨ãããã¾ããã ãããªããã§ãä»åã¯ã¬ã³ã¼ããæ¤ç´¢ããããã«å¿ è¦ãªã¤ã³ããã¯ã¹ã®åºç¤ç¥èã¨ãããè¦ãããä¸é©åãªã¤ã³ããã¯ã¹ã«ã¤ãã¦è§£èª¬ãã¾ããã¯ãã¯ãããã§ã¯ Rails ã®ãã¼ã¿ãã¼ã¹ã¨ãã¦ä¸»ã« MySQL 5.6ãMySQL ã®ã¹ãã¬ã¼ã¸ã¨ã³ã¸ã³ã¨ãã¦ä¸»ã« InnoDB ã使ã£ã¦ããã®ã§ãMySQL 5.6 ã® InnoDB ã«ã¤ãã¦è§£èª¬ãã¾ãã InnoDB ã®ã¤ã³ããã¯ã¹ã«é¢ããåºç¤ç¥è ã¤ã³ããã¯ã¹ã®æ§é (B+ æ¨) InnoDB ã§ã¯ B+ æ¨ã使ããã¦ãã¾ããB+ æ¨ã¯æ¬¡ã®ãããªç¹å¾´ãæã£ãæ¨æ§é ã§ãã æ¬¡æ°ã b ã¨ããã¨ã
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã¡ã³ããã³ã¹
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}