MySQL/¥Á¥å¡¼¥Ë¥ó¥°
Last-modified: 2011-08-26 (¶â) 18:58:31 (154d)
- MySQL´ØÏ¢¤ÎWiki¤Ø¤Î¥ê¥ó¥¯
- MySQL ½é¤á¤Æ¤Î¥Á¥å¡¼¥Ë¥ó¥°
- mysql¤ò¹â®²½¤·¤¿¤¤¤È¤¤Î¥Á¥å¡¼¥Ë¥ó¥°ÊýË¡
- MySQL 5.1 ¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë 6.ºÇŬ²½
- ¤µ¤é¤ËMySQL¤ò¹â®²½¤¹¤ë7¤Ä¤ÎÊýË¡
- Sundry MySQL Scripts and Docs
- MySQL Performance Tuning Primer Script ... my.cnf¤äInformation Schema¤Î¾ðÊ󤫤éÀßÄê¤Î¥¢¥É¥Ð¥¤¥¹¤ò¤·¤Æ¤¯¤ì¤ë¥¹¥¯¥ê¥×¥È
¥¯¥¨¥êʬÀÏ †
¥µ¡¼¥ÐʬÀÏ †
ÀßÄêÃͤò³Îǧ †
mysql> show variables;
Åý·×¾ðÊó¤ò¼è¤ë †
- ÄêÎÌŪ¤Ê¾ðÊó¼ý½¸¤Î¥¹¥¹¥á
mysql> show global status; (5.0.2°Ê¾å¤Î¾ì¹ç) mysql> show status; (5.0.2̤Ëþ¤Î¾ì¹ç)
- ¥Æ¡¼¥Ö¥ë¤Î¥ì¥³¡¼¥É¿ô¡¢¥Ç¡¼¥¿¥µ¥¤¥º¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥µ¥¤¥º¤Ê¤É¤òÄ´ºº
select table_name, engine, table_rows as tbl_rows, avg_row_length as rlen, floor((data_length+index_length)/1024/1024) as allMB, floor((data_length)/1024/1024) as dMB, floor((index_length)/1024/1024) as iMB from information_schema.tables where table_schema=database() order by (data_length+index_length) desc;
¥¹¥í¡¼¡¦¥¯¥¨¥ê¡¼¤Î¥í¥°¤ò¥Á¥§¥Ã¥¯ †
Àܳ¾õ¶·¤Î³Îǧ †
$ mysqladmin -p extended-status | grep -E 'Max|Threads' Enter password: | Max_used_connections | 51 | | Threads_cached | 4 | | Threads_connected | 21 | | Threads_created | 18015 | | Threads_running | 11 |
¥Ç¡¼¥¿¥µ¥¤¥º¤ÈÅëºÜ¥á¥â¥ê¤ÎºÇŬ²½ †
- ¡Ö¥Ç¡¼¥¿¥µ¥¤¥º¡ã¥á¥â¥êÍÆÎ̡פò¿´³Ý¤±¤ë
- ¥Ç¥£¥¹¥¯¤È¥á¥â¥ê¤ÎÆÉ¤ß½ñ¤Â®ÅÙ¤Ï100ËüÇܤκ¹¤¬¤¢¤ë
- B¥Ä¥ê¡¼¥¤¥ó¥Ç¥Ã¥¯¥¹¤Îõº÷¡¢¥Æ¡¼¥Ö¥ë¥¹¥¥ã¥ó»þ¤ËÂçÎ̤Υ·¡¼¥¯¤¬È¯À¸¡£¤³¤ì¤ò¥Ç¥£¥¹¥¯¾å¤Ç¤ä¤ë¤«¡¢¥á¥â¥ê¾å¤Ç¤ä¤ë¤«¤Ç¤«¤Ê¤ê¤Îº¹¤¬½Ð¤ë
- MySQL¤ÏOS¤Î¥Õ¥¡¥¤¥ë¥¥ã¥Ã¥·¥å¤òÍê¤ê¤Ë¤¹¤ëÁ°Äó¤Çºî¤é¤ì¤Æ¤¤¤ë
- OS¤Î¥Õ¥¡¥¤¥ë¥¥ã¥Ã¥·¥å¡¢MySQLÀìÍѤΥХåե¡¤Î¤É¤Á¤é¤Ç¤âÎɤ¤
- ¥Ç¡¼¥¿¤ÎÁ´ÍÆÎ̤¬¥á¥â¥ê¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤À¤±¤Ç¤â¥á¥â¥ê¤Ë¼ý¤Þ¤ë¤è¤¦¤Ë¤¹¤ë
¥Æ¡¼¥Ö¥ëÀ߷ס¢SQL¤Î¸«Ä¾¤· †
- ¥Õ¥ì¡¼¥à¥ï¡¼¥¯³«È¯»þÂå¤ÎSQL¥Á¥å¡¼¥Ë¥ó¥°´ðÁáʣ±¡ËEXPLAIN¶ç
- ¥Õ¥ì¡¼¥à¥ï¡¼¥¯³«È¯»þÂå¤ÎSQL¥Á¥å¡¼¥Ë¥ó¥°´ðÁáʣ²¡ËSQL¤Î¤ä¤Ã¤Á¤ã¤À¤áÁ°ÊÔ
- ¥Õ¥ì¡¼¥à¥ï¡¼¥¯³«È¯»þÂå¤ÎSQL¥Á¥å¡¼¥Ë¥ó¥°´ðÁáʣ³¡ËSQL¤Î¤ä¤Ã¤Á¤ã¤À¤á¸åÊÔ
- MySQL¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÀ©¸Â¤ËÃí°Õ¤¹¤ë
- WHERE¶ç¤ÈORDER BY¶ç¤ËÍøÍѤǤ¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï£±¤Ä¤Þ¤Ç
- ¾ÜºÙ¤ÏSELECT¥¹¥Æ¡¼¥È¥á¥ó¥È¤ª¤è¤Ó¤½¤Î¾¤Î¥¯¥¨¥ê¤ÎºÇŬ²½¤ò»²¾È¤Î¤³¤È
- ¾ò·ï¤Ë¤è¤¯»ØÄꤹ¤ë¹àÌܤǽ¸·×¤¬É¬Íפʤâ¤Î¡Ê·ï¿ô¤Ê¤É¡Ë¤Ï¡¢¥Æ¡¼¥Ö¥ë¤Ë¥«¥é¥à¤òÄɲ䷤ơ¢¤½¤Î¥«¥é¥à¤ò¸«¤ë¤è¤¦¤Ë¤¹¤ë
- ¥¢¥×¥ê¤ò²þ½¤¤·¡¢¥Æ¡¼¥Ö¥ë¹¹¿·»þ¤Ë¾ï¤ËÄɲä·¤¿¥«¥é¥à¤ÎÃͤò¹¹¿·¤¹¤ë¤è¤¦¤Ë¤¹¤ë
¥Á¥å¡¼¥Ë¥ó¥° †
»ÈÍÑ¥á¥â¥ê¤ÎÄ´À° †
¥Õ¥¡¥¤¥ë¥ª¡¼¥×¥ó¿ô¤ÎÄ´À° †
¹âÉé²Ù¤Ê¤È¤¤Ë°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô
$ mysqladmin -u root -p extended-status | grep Open Enter password: | Open_files | 515 | | Open_streams | 0 | | Open_tables | 256 | | Opened_tables | 45281 |
Open_files, Open_tables¤Î¿ô¤¬Â¿¤¤¾ì¹ç¤Ï /etc/my.cnf ¤Î°Ê²¼¤òÄ´À°¡£open_files¤ÎÃͤËÈæ¤Ù¤Ætable_cache¤ÎÃͤ¬Â礤¹¤®¤ë¤È¡ÖError in accept: Too many open files¡×¥¨¥é¡¼¤¬È¯À¸¤·¡¢MySQL¤¬µ¡Ç½ÉÔÁ´¤Ë´Ù¤ë¤Î¤ÇÍ×Ãí°Õ¡ª
[mysqld] open_files=2048 table_cache=512
¾åµ¤Î¿ô¤òÁý¤ä¤¹¤È¤¤Ï¡Ö¥æ¡¼¥¶¤´¤È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¡×¤Ë¤âÃí°Õ¡£É¬ÍפʤéÁý¤ä¤¹¡£
¡Ú»²¹Í¡Û
I/O¤Îʬ»¶ †
- ¥Ç¡¼¥¿¥Ç¥£¥ì¥¯¥È¥ê¤Îʬ»¶
- ¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ã¤¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥Þ¥¦¥ó¥È¤¹¤ë
- ¥Ç¥£¥ì¥¯¥È¥ê¤ò¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤·¡¢¥Ç¡¼¥¿¤Ï°ã¤¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÃÖ¤¯
- MyISAM¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë(MYD)¤È¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë(MYI)¤òÃÖ¤¯¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄê¤Ç¤¤ë
InnoDBÆÃ²½ †
- Á´¥Æ¡¼¥Ö¥ë¤òInnoDB²½
- MySQL¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë 13.5.3.1. Per-Table ¥Æ¡¼¥Ö¥ë¥¹¥Ú¡¼¥¹¤òÍøÍѤ¹¤ë
- innodb_file_per_table¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢1 InnoDB¥Æ¡¼¥Ö¥ë¡á1¥Õ¥¡¥¤¥ë¤Ë¤·¡¢¥Þ¥¦¥ó¥È¤ä¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Çʬ»¶¤µ¤»¤ë¡£
- InnoDB ¤Ï¡¢¶¦Í¥Æ¡¼¥Ö¥ë¥¹¥Ú¡¼¥¹¡Êibdata1 etc¡Ë¤ËÆâÉô¥Ç¡¼¥¿¥Ç¥£¥ì¥¯¥È¥ê¤È¼è¤ê¾Ã¤·¥í¥°¤òÃÖ¤¯¤Î¤Ç¡¢¤¤¤Ä¤â¤½¤ì¤òɬÍפȤ¹¤ë¡£.ibd ¥Õ¥¡¥¤¥ë¤À¤±¤Ç¤Ï InnoDB ¤Ïưºî¤·¤Ê¤¤¡£
- innodb_file_per_table¤Ê¤Î¤Ëibdata1¤¬ÍøÍѤµ¤ì¤ë
my.cnf †
MyISAM/InnoDB¶¦ÄÌ †
- table_open_cache
- MySQL ¤Ç¤Î¥Æ¡¼¥Ö¥ë¤Î¥ª¡¼¥×¥ó¤È¥¯¥í¡¼¥º¤ÎÊýË¡
- Àܳ¿ô¤¬200¤Î¾ì¹ç¡¢ºÇÄã 200 ¡ß N ¤Î¥Æ¡¼¥Ö¥ë¥¥ã¥Ã¥·¥å¥µ¥¤¥º¤¬É¬Í×
- max_connections
- ¥µ¡¼¥Ð¤¬µö²Ä¤¹¤ëºÇÂçÆ±»þÀܳ¿ô
- query_cache_size (Global)
- ¥¯¥¨¥ê¤Î¼Â¹Ô·ë²Ì¤Î¥¥ã¥Ã¥·¥å¡£Æ±¤¸Query¤¬¥¥ã¥Ã¥·¥å¤Ë¤¢¤ë¾ì¹ç¤ÏSQL¤ò¼Â¹Ô¤»¤º¤Ë¥¥ã¥Ã¥·¥å¤ÎÆâÍÆ¤òÊÖ¤¹¤Î¤Ç¡¢¥µ¥¤¥º¤ÏÂ礤¤Êý¤¬Îɤ¤¡£
- ³ºÅö¤¹¤ë¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¥¥ã¥Ã¥·¥å¤â¤Ê¤¯¤Ê¤ë¤Î¤Ç¡¢¥¥ã¥Ã¥·¥å¤Ë¤è¤ëÉÔ¶ñ¹ç¤¬À¸¤¸¤ë¤³¤È¤Ï¤Ê¤¤
- sort_buffer_size (Thread)
- ¥½¡¼¥È¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¥¹¥ì¥Ã¥É¤¬¤³¤Î¥µ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë
MyISAM´ØÏ¢ †
- key_buffer_size (Global)
- MyISAM¤Î¥¡¼¤ò¥¥ã¥Ã¥·¥å¤¹¤ë¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º
- MyISAM¤Î¤ß¤ÎMySQLÀìÍÑ¥µ¡¼¥Ð¤Ê¤éRAM¤Î1/4ÄøÅÙ³ä¤êÅö¤Æ¤ë¤ÈÎɤ¤
- myisam_sort_buffer_size (Thread)
- MyISAMÍÑ
- ¥¤¥ó¥Ç¥Ã¥¯¥¹ºîÀ®»þ¡ÊREPAIR TABLE, CREATE INDEX, ALTER TABLE¡Ë¤Ë»ÈÍѤ¹¤ë¥Ð¥Ã¥Õ¥¡
- »²¹Í¡§myisam_sort_buffer_size¤òÁý¤ä¤·¤Æ¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦
InnoDB´ØÏ¢ †
- innodb_file_per_table
- ¥Æ¡¼¥Ö¥ëñ°Ì¤Ë .ibd ¥Õ¥¡¥¤¥ë¤òºîÀ®
- ɬ¤º¡ª¡ª»ØÄꤹ¤ë¤³¤È
- innodb_buffer_pool_size (Global)
- InnoDB ¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤È¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊݸ¤¹¤ë¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礤µ
- ¼ÂºÝ¤Ë¤Ï¤³¤³¤Ç³ä¤êÅö¤Æ¤¿ÃͤÎ5¡Á10%¤°¤é¤¤Â¿¤á¤Ë¥á¥â¥ê¤ò»È¤¦¤Î¤ÇÃí°Õ¤¬É¬Í×
- MySQL¤«¤ÄInnoDBÀìÍÑ¥µ¡¼¥Ð¤Ê¤éRAM¤Î 70-80% °Ì¤Þ¤Ç¾å¤²¤Æ¤âÎɤ¤¤È¤«¸À¤ï¤ì¤Æ¤¤¤ë¤¬¡¢¼ÂºÝ¤Ë¤ä¤ë¤ÈÍî¤Á¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢50%¤Ëα¤á¤Æ¤ª¤¤¤¿Êý¤¬ÌµÆñ
- innodb_log_file_size
- ¥Ç¡¼¥¿¤Î½ñ¤¹þ¤ß¡¢ÆÀ¤ËÂ礤ʥµ¥¤¥º¤Î¥Ç¡¼¥¿¤Î½ñ¤¹þ¤ßÀǽ¤Ë±Æ¶Á¤¹¤ë
- Â礤ʥµ¥¤¥º¤Û¤É¥Ç¡¼¥¿¤Î¥ê¥«¥Ð¥ê»þ´Ö¤òÍפ¹¤ë
- ¥µ¥¤¥º¤òÊѹ¹¤¹¤ë¾ì¹ç¡¢Àµ¾ïÄä»ß¸å¡¢ºîÀ®ºÑ¤ß¤Î¥í¥°¥Õ¥¡¥¤¥ë(¥Ç¥Õ¥©¥ë¥È¤Ï /var/lib/mysql/ib_logfile**)¤òºï½ü¤·¡¢mysql¥µ¡¼¥Ð¤òµ¯Æ°¤·¤Ê¤ª¤¹É¬Íפ¢¤ê
- innodb_flush_method
- MySQL innodb_flush_method = O_DIRECT¤Î¸¡Æ¤
- ¥Ç¥Õ¥©¥ë¥È¡Êfdatasync¡Ë¤ÇÎɤ¤¤Î¤Ç̤»ØÄê¤ÇOK
¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÄ´À° †
- ³ÈÄ¥¤µ¤ì³¤±¤ë InnoDB ¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ëÊýË¡
- ¡ÚMySQL¥¦¥©¥Ã¥Á¡ÛÂè32²ó MySQL Enterprise ºÇ½é¤Î¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤È¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥ê¥µ¥¤¥º
¾É¾õ¤ÈÂкö †
- Copying to tmp table ¤¬ÉÑȯ
- ¥Æ¡¼¥Ö¥ë¤¬MyISAM¤Î¾ì¹ç
- myisam_sort_buffer_size (Thread) ¤òÂ礤¯¤¹¤ë
- key_buffer_size (Global) ¤òÂ礤¯¤¹¤ë¡Ê1/6¡Á1/4¡Ë
- ¥Æ¡¼¥Ö¥ë¤¬InnoDB¤Î¾ì¹ç
- sort_buffer_size (Thread) ¤òÂ礤¯¤¹¤ë
- ¥Æ¡¼¥Ö¥ë¤¬MyISAM¤Î¾ì¹ç
¥Á¥å¡¼¥Ë¥ó¥°¤Î¼ê½ç †
- ¤Ï¤¸¤á¤Æ¤ÎMySQL¥Á¥å¡¼¥Ë¥ó¥°
- MySQL¤ÎºÇŬ²½
- ¥µ¡¼¥Ð¡¼ÀßÄê¤ò¸«Ä¾¤·¤ÆMySQL¤ÎÀǽ¤ò°ú¤½Ð¤¹
- MySQL¤Î¥Á¥å¡¼¥Ë¥ó¥°
- 5ʬ¤Ç¤Ç¤¤ë¡¢MySQL¤Î¥á¥â¥ê´Ø·¸¤Î¥Á¥å¡¼¥Ë¥ó¥°¡ª
- MySQL¥Á¥å¡¼¥Ë¥ó¥°
- MySQL¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¡¦¥Á¥å¡¼¥Ë¥ó¥°
- MySQL¤Î¥¯¥¨¥ê¤òºÇŬ²½¤¹¤ë10¤ÎTips
- ¡Ö¤Á¤ç¤Ã¤ÈÂÔ¤Æ¡× ¿¿¡¦MySQL¤Î¥¯¥¨¥ê¤òºÇŬ²½¤¹¤ë10¤ÎTips
- MySQL Performance Blog
- Top 84 MySQL Performance Tips
- MySQL Performance Tuning Key
- [MySQL Performance Tuning Primer:http://day32.com/MySQL/]]
¥Æ¡¼¥Ö¥ë°µ½Ì †
myisampack †
- MyISAM¤ÎMYD¥Õ¥¡¥¤¥ë¤ò°µ½Ì
- ¸µ¥Õ¥¡¥¤¥ë¤Î50¡Á70%