JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP Áú¹®&´äº¯DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP±âŸ TIP
µ¥ÀÌÅͺ£À̽º ÆÁ
µ¥ÀÌÅͺ£À̽º ÆÁ
µ¥ÀÌÅͺ£À̽º ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
InnoDB Performance tuning tips
GoodBug
À̹ÌÁö ½½¶óÀÌ´õ º¸±â

InnoDB Performance tuning tips

 

from http://www.database.sarang.net/?inc=read&aid=16451&criteria=mysql&subcrit=&id=&limit=20&keyword=tip&page=1

 

InnoDB´Â MyISAM°ú °øÀ¯ÇÏ´Â ¸Þ¸ð¸®µµ ÀÖÁö¸¸ ´ë°³ º°µµÀÇ Buffer poolÀ» °¡Áö°í ÀÖ½À´Ï´Ù. Áï, MyISAMÀÇ °æ¿ì record_buffer³ª key_buffer¸¦ »ç¿ëÇÏÁö¸¸ InnoDB´Â innodb_additional_mem_pool_size³ª innodb_buffer_pool_size °°Àº º°µµÀÇ ¸Þ¸ð¸®¸¦ »ç¿ëÇÕ´Ï´Ù. µû¶ó¼­ InnoDBÀü¿ë DB¸¦ ±¸¼ºÇÑ´Ù¸é key_buffer³ª record_buffer ¿¡ ³Ê¹« ¸¹Àº ¸Þ¸ð¸®¸¦ ÇÒ´çÇؼ­´Â ¾ÈµÇ°Ú½À´Ï´Ù.

 

Áß¿äÇÑ ¸Þ¸ð¸® °ü·Ã ÆĶó¹ÌÅ͸¦ ¸î°¡Áö ¼³¸íÇÏ°Ú½À´Ï´Ù.

 

1. innodb_buffer_pool_size : MyISAMÀÇ °æ¿ì Buffer poolÀÌ ¾ø½À´Ï´Ù. µû¶ó¼­ OSÀÚüÀÇ buffer cache¸¦ »ç¿ëÇϸç OSÀÇ flush ¸ÞÄ«´ÏÁò¿¡ µû¶ó¼­ µð½ºÅ©¿¡ ¾²°Ô µË´Ï´Ù.

MyISAMÀÇ °æ¿ì Key_buffer ³ª record_buffer, sort_buffer¿Ü¿¡µµ OSÀÇ ¹öÆÛij½Ã¸¦ À§ÇØ ÃæºÐÇÑ ¸Þ¸ð¸®¸¦ ³²°Ü ³õ¾Æ¾ßÇÏ°Ú½À´Ï´Ù. OSÀÇ ¹öÆÛij½¬´Â OS°¡ ÀÚµ¿À¸·Î »çÀÌÁ µ¿ÀûÀ¸·Î ÇÒ´çÇϸç free ¸í·É¾î·Î »óŸ¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

±×·¯³ª InnoDB´Â ¿À¶óŬó·³ º°µµÀÇ µ¥ÀÌŸ¸¦ À§ÇÑ Àб⠾²±â ¹öÆÛ ¸Þ¸ð¸®¸¦ °¡Áö°í ÀÖÀ¸¸ç ±×°ÍÀÌ innodb_buffer_pool_sizeÀÔ´Ï´Ù. innodb_buffer_pool_size´Â »öÀΰú µ¥ÀÌŸ¿¡ ´ëÇÑ Cache µ¥ÀÌŸ¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ±×·¡¼­ MyISAMó·³ Key_buffer°¡ ÇÊ¿ä ¾ø´Â°Ì´Ï´Ù.

 

º¸Åë ¿ì¸®°¡ SQLÄõ¸®·Î ÁúÀǸ¦ ¼öÇàÇϸé DBMS´Â ¸ÕÀú ÀÌ buffer_pool¿¡¼­ µ¥ÀÌŸ¸¦ °Ë»öÇÏ°í ¾øÀ» °æ¿ì µð½ºÅ©¿¡¼­ Àо buffer_pool¿¡ ¿Ã·Á³õÀ¸¸ç ÀÌ°ÍÀ» \¹°¸®ÀûÀÎ Àбâ\ ¶ó°í ÇÕ´Ï´Ù. ¹Ý¸é¿¡ ÀÌ¹Ì buffer_pool¿¡ µ¥ÀÌŸ°¡ Á¸ÀçÇÏ¿© µð½ºÅ©¸¦ Á÷Á¢ ÀÐÁö ¾Ê¾Æµµ µÇ´Â °æ¿ì¸¦ \³í¸®Àû Àбâ\¶ó°í ÇÕ´Ï´Ù.

 

´ç¿¬È÷ ³í¸®Àû ÀбⰡ ´õ ºü¸£¹Ç·Î buffer_poolÀÇ »çÀÌÁ Å©°Ô ¼³Á¤ÇÒ ¼ö·Ï À¯¸®ÇÕ´Ï´Ù. ±×·¯³ª ¹«ÇÑÁ¤ Å©±â¸¦ ´Ã¸± °æ¿ì ½º¿ÍÇÎÀ» À¯¹ßÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÚ½ÅÀÇ ÇöÀç ¸Þ¸ð¸®¿¡¼­ °è»êÇÏ¿©¾ß ÇÕ´Ï´Ù. Àû´çÇÑ »çÀÌÁî´Â ÀÚ½ÅÀÇ ¸Þ¸ð¸®ÀÇ 50%-80%ÀÔ´Ï´Ù.

Âü°í·Î x86¸Ó½Å¿¡¼­´Â ÀÌ innodb_buffer_pool_size ¸¦ 2GÀÌ»ó ¼³Á¤ÇÒ ¼ö¾øÀ¸´Ï Âü°í ¹Ù¶ø´Ï´Ù.

 

2. innodb_additional_mem_pool_size: ÀÌ ¸Þ¸ð¸®´Â \µ¥ÀÌŸ µñ¼Å³Ê¸® Á¤º¸\³ª \³»ºÎÀÇ µ¥ÀÌŸ ±¸Á¶\ ¿¡ ´ëÇÑ Á¤º¸¸¦ ´ã´Â ¸Þ¸ð¸®ÀÔ´Ï´Ù.

º¸Åë 2MÁ¤µµ°¡ Àû´çÇÏÁö¸¸ ¾ÆÁÖ ¸¹Àº Å×À̺íÀ» »ç¿ëÇÑ´Ù¸é ´Ã·ÁÁÖ¾î¾ßÇÕ´Ï´Ù.

ÀÌ ¸Þ¸ð¸® °ø°£ÀÌ ºÎÁ·Çϸé InnoDB´Â OSÀÇ ¸Þ¸ð¸®¸¦ ÇÒ´çÇؼ­ »ç¿ëÇϱ⠽ÃÀÛÇϸç error log¿¡ warning ¸Þ½ÃÁö¸¦ ³²±â°Ô µË´Ï´Ù.

 

3. innodb_flush_log_at_trx_commit : ÀÌ ÆĶó¹ÌÅÍ´Â insert ³ª update µî µ¥ÀÌŸ »ðÀÔ°ú ¹ÐÁ¢ÇÑ °ü°è°¡ ÀÖ½À´Ï´Ù.

Áï, commit À» ÇÏ¿´À» °æ¿ì ±× Áï½Ã commitµÈ µ¥ÀÌŸ¸¦ log file ¿¡ ±â·ÏÇÒ °ÍÀÎÁö ¾Æ´ÑÁö¸¦ ¼³Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. Áï½Ã ·Î±× ÆÄÀÏ¿¡ ±â·ÏÇÒ °æ¿ì ±ÞÀÛ½º·± Á¤Àü °°Àº °æ¿ì µ¥ÀÌŸ ¼Õ½ÇÀ» ¸·À» ¼ö ÀÖÁö¸¸ ¸Å¹ø ·Î±×¸¦ ±â·ÏÇØ¾ß ÇϹǷΠ¼Óµµ°¡ »ó´çÈ÷ ÀúÇϵ˴ϴÙ.

¸¸¾à ¾à°£ÀÇ µ¥ÀÌŸ ¼Õ½ÇÀ» °¨³»ÇÒ ¼ö ÀÖ´Ù¸é \0\À¸·Î ¼³Á¤ÇϽñ⠹ٶø´Ï´Ù.

\0\À¸·Î ¼³Á¤ÇÒ °æ¿ì ¸Å Æ®·£Àè¼Ç ¸¶´Ù µ¥ÀÌŸ¸¦ ·Î±×¿¡ ±â·ÏÇÏÁö ¾ÊÀ¸¹Ç·Î I/OºÎÇϸ¦ ÁÙÀÏ ¼ö ÀÖÀ¸¸ç ¿©·¯ Æ®·£Àè¼ÇÀ» ¸ð¾Æ¼­ ÇѹøÀÇ µð½ºÅ© I/O·Î ±â·ÏÇϹǷΠI/OȽ¼ö ÀÚüµµ ÁÙ¾îµì´Ï´Ù.

 

½ÇÀç·Î Å×½ºÆ® °á°ú ÀÌ ¿É¼ÇÀÇ ¼³Á¤¿¡ µû¶ó ±ØÀûÀ¸·Î insert ¼º´ÉÀÌ ´Þ¶óÁö´Â °ÍÀ» ¸ñ°ÝÇÏ¿´½À´Ï´Ù.

 

µðÆúÆ® ¼³Á¤Àº \0\Áï off »óÅÂÀÔ´Ï´Ù. (commitÁï½Ã ·Î±×¿¡ ±â·ÏÇÏÁö ¾ÊÀ½)

 

4. innodb_log_file_size: ÀÌ ÆÄÀÏÀº Æ®·£Àè¼ÇÀ» ±â·ÏÇÏ´Â ·Î±× ÆÄÀÏÀÇ »çÀÌÁ °áÁ¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. InnoDB´Â Æ®·£Àè¼ÇÀ» Áö¿øÇϹǷΠÀÌ·± Æ®·£Àè¼Ç ¾ÈÁ¤¼ºÀ» À§ÇÑ ·Î±× ÆÄÀÏÀÌ Á¸ÀçÇÏ¿©¾ß ÇÕ´Ï´Ù.

óÀ½¿¡ µ¥ÀÌŸ¿Í »öÀÎÀ» À§ÇÑ ¹öÆÛÇ® ¸Þ¸ð¸®(innodb_buffer_pool_size)¸¦ ¾ð±ÞÇÏ¿´½À´Ï´Ù. ÀÌ·¯ÇÑ ¹öÆÛÇ®Àº ¼º´ÉÀ» À§ÇÑ °ÍÀÓ¿¡ Ʋ¸²¾øÁö¸¸ ´ÜÁ¡Àº ±ÞÀÛ½º·± Á¤Àü °°Àº °æ¿ì¿¡ ¹öÆÛÇ®¿¡ ÀÖ´Â µ¥ÀÌŸ°¡ ¼Õ½ÇµÈ´Ù´Â °ÍÀÔ´Ï´Ù. (ÁÖ·Î ¾²±â ¹öÆÛ) ±×·¡¼­ ÀÌ·¯ÇÑ ¼Õ½ÇÀ» ¹æÁöÇÏ°íÀÚ log fileÀ» µÎ°Ô µÇ¸ç, Æ®·£Àè¼Ç commitÀÌ µÉ ¶§¸¶´Ù ·Î±×¿¡ ²Ä²ÄÈ÷ ±â·ÏÇسõ°í ÃßÈÄ ½Ã½ºÅÛ ´Ù¿îÀ̳ª Á¤Àü °°Àº »óȲÀÌ ¹ß»ýÇÒ °æ¿ì ÀÌ ·Î±× ÆÄÀÏÀ» ±Ù°Å·Î ÀÚµ¿ º¹±¸¸¦ ÇÏ°Ô µË´Ï´Ù.

 

ÀÌ ÆÄÀÏÀÇ »çÀÌÁ ¾ó¸¶·Î ¼³Á¤ÇÏ´À³Äµµ ¾ÆÁÖ Áß¿äÇÑ ¹®Á¦ÀÔ´Ï´Ù. ÀÌ ÆÄÀÏÀº Æ®·£Àè¼ÇÀ» ±â·ÏÇÏ´Â ÆÄÀÏÀ̹ǷΠÀÌ ÆÄÀÏÀÌ °¡µæÂ÷°Ô µÇ¸é ¹öÆÛÇ®¿¡ ÀÖ´Â µ¥ÀÌŸ¸¦ µð½ºÅ©¿¡ ¾²µµ·Ï Áö½ÃÇÏ°í ·Î±×¸¦ ÃʱâÈ­ÇÏ°í ´Ù½Ã ½á³ª°¡¾ß ÇÕ´Ï´Ù.

 

Áï ·Î±× ÆÄÀÏÀº ¹«ÇÑÁ¤ Ä¿Áö´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÏÁ¤ÇÑ Å©±â¿Í °¹¼ö¸¦ °¡Áö°í ¼øȯ½ÄÀ¸·Î ó¸® µÇ¹Ç·Î ·Î±×°¡ ÃʱâÈ­µÇ´Â½ÃÁ¡¿¡´Â buffer_poolÀÇ µ¥ÀÌŸ¸¦ µð½ºÅ©¿¡ ±â·ÏÇÏ¿©¾ßÇÕ´Ï´Ù. µÚÁý¾î ¸»Çϸé ÀÌ ·Î±× »çÀÌÁî°¡ ÀÛÀ¸¸é ÀÛÀ»¼ö·Ï buffer_poolÀÇ ³»¿ëÀ» ÀÚÁÖ µð½ºÅ©¿¡ ±â·ÏÇÏ¿©¾ß ÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù. (checkpoint)

µû¶ó¼­ ÀÌ ·Î±× ÆÄÀÏÀÇ »çÀÌÁ buffer_poolÀÇ 15% Á¤µµ·Î ¼³Á¤ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ¸ç °æ¿ì¿¡ µû¶ó¼­´Â buffer_pool »çÀÌÁî Á¤µµ·Î Ä¿Áú ¼öµµ ÀÖ½À´Ï´Ù.

 

ÀÌ ·Î±× ÆÄÀÏÀÇ ÃÖ´ë »çÀÌÁî´Â ¸ðµÎ ÇÕÃļ­ <4GBº¸´Ù ÀÛ¾Æ¾ß ÇÑ´Ù´Â Á¦ÇÑÀÌ ÀÖÀ¸¸ç, »çÀÌÁî°¡ Ŭ °æ¿ì ¹Ý´ë ±ÞºÎ·Î ½Ã½ºÅÛ ´Ù¿î ÈÄ À纹±¸¿¡ ¸¹Àº½Ã°£ÀÌ ¼Ò¿äµÈ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.

 

5. innodb_log_buffer_size : ÀÌ°ÍÀº À§¿¡¼­ ¸»ÇÑ ·Î±× ÆÄÀÏÀ» ±â·ÏÇϱâ À§ÇÑ ¹öÆÛ »çÀÌÁîÀÔ´Ï´Ù. Ä¿´Ù¶õ Æ®·£Àè¼ÇÀ» ó¸®ÇÒ °æ¿ì Å©°Ô Àâ¾ÆÁÖ´Â °ÍÀÌ ÁÁÁö¸¸ Æ®·£Àè¼ÇÀÌÀ۰ųª °ÅÀÇ ¾ø´Ù¸é Å©°Ô Àâ´Â °ÍÀº ³¶ºñÀÔ´Ï´Ù.

º¸Åë 1M-8M »çÀÌ·Î ¼³Á¤ÇϽñ⠹ٶø´Ï´Ù.

 

¸î°¡Áö ¿É¼ÇµéÀÌ ´õ ÀÖÁö¸¸ ¼º´É¿¡ °¡Àå ±ØÀûÀÎ ¿µÇâÀ» ÁÖ´Â °Íµé¸¸ ¾ð±ÞÇß½À´Ï´Ù.

 

 

¸ð´ÏÅ͸µ

 

MySQL 3.23.52 ±×¸®°í 4.0.3 ¹öÁ¯ ºÎÅÍ InnoDBÀÇ ³»ºÎ »óŸ¦ ¸ð´ÏÅ͸µ ÇÒ ¼ö ÀÖµµ·Ï "SHOW INNODB STATUS" ¸í·É¾î¸¦ Á¦°øÇÕ´Ï´Ù.

 

ÇöÀç ¹öÁ¯Àº À§ÀÇ ¸í·É¾î¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î

CREATE TABLE innodb_monitor(a int) type = innodb;

¶ó´Â ¸í·É¾î¸¦ ³»¸®¸é <hostname>.err ÆÄÀÏ¿¡ ÀÏÁ¤°£°ÝÀ¸·Î ³»ºÎ Á¤º¸¸¦ ±â·ÏÇÕ´Ï´Ù.

´Ù½Ã ²ô·Á¸é DROP TABLE innodb_monitor; ¸í·É¾î¸¦ ³»·ÁÁÖ¼Å¾ß ÇÕ´Ï´Ù.

 

create table innodb_monitor(a int) type=innodb; ¶ó´Â ¸í·É¾î´Â ±×³É MySQL¿£Áø¿¡°Ô »óÅÂÁ¤º¸¸¦ ·Î±×¿¡ ±â·ÏÇ϶ó´Â ÀǹÌÀÌÁö ½ÇÀç·Î Å×À̺íÀº Àǹ̰¡ ¾ø½À´Ï´Ù.

À§ÀÇ Å×À̺íÀ» »ý¼ºÇ϶ó´Â ¸í·É¾î¸¦ ÀÔ·ÂÇϸé MySQL ¿£ÁøÀº ±×³É ¸í·É¾î·Î ÀνÄÇÕ´Ï´Ù.

 

¸ð´ÏÅ͸µÀ» ¾ð±ÞÇÏ´Â ÀÌÀ¯´Â Æ©´×À» ÇѹøÇϴ°ÍÀ¸·Î ³¡³ª´Â°ÍÀÌ ¾Æ´Ï¶ó Áö¼ÓÀûÀ¸·Î ¸ð´ÏÅ͸µ ÇÏ¿© Á¶Á¤ÇÏ¿©¾ß ÇÑ´Ù´Â Á¡À» °­Á¶Çϱâ À§Çؼ­ ÀÔ´Ï´Ù.

 

 

 

ºÐ¸íÈ÷ Æ©´×Àº Á¤´äÀÌ ¾ø½À´Ï´Ù. µû¶ó¼­ ³»ºÎ ÀÛµ¿ ¿ø¸®¸¦ Á¤È®È÷ ÀÌÇØÇÏ°í Æ©´×À» ÇßÀ» ¶§ È¿°ú¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.

2005-03-31 11:24:25
211.189.124.***

 

ÁÁÀº»ý°¢ ^^

0Á¡ (0¸í)
µ¡±Û 0°³ | ÅÂ±× 0°³ | °ü·Ã±Ûº¸±â
ű×ÀÔ·Â
½±Ç¥(,)±¸ºÐÀ¸·Î Çѹø¿¡ ¿©·¯ ű׸¦ ÀÔ·ÂÇÒ¼ö ÀÖ½À´Ï´Ù
À̸§ ºñ¹Ð¹øÈ£
µ¥ÀÌÅͺ£À̽º ÆÁ
µ¥ÀÌÅͺ£À̽º ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
! ¹øÈ£ Á¦¸ñ ±Û¾´ÀÌ ÀÏÀÚ Á¶È¸
181 import DB ºÎºÐÀûÀÎ µ¥ÀÌÅÍ export / import ¹æ¹ý 2 kaiser 2008-12-29 7,795
180 NOT IN NOT EXISTS not in °ú not existsÀÇ °³³ä ÀÌÇØ 1 kaiser 2008-12-17 19,574
179 IP Á¢¼ÓÀÚ ¾ÆÀÌÇÇ º¸±â 1 GoodBug 2008-06-27 9,451
178 meta ¿À¶óŬ ½ºÅ°¸¶ ½ºÅ©¸³Æ® ¹Þ±â 1 GoodBug 2008-06-05 19,843
177 ORA-00054 ORA-00054: resource busy and acquire with NOWAIT specified 1 GoodBug 2007-10-27 13,058
176 ÇÑ±Û MYSQL ¼­¹ö ij¸¯¼ÂÀÌ EUCKRÀÌ ¾Æ´Ò°æ¿ì Ŭ¶óÀ̾ðÆ® ¼³Á¤ 1 GoodBug 2007-10-09 8,344
175 archive ¾ÆÄ«ÀÌºê ¼º´É Çâ»ó 1 GoodBug 2007-10-02 7,939
174 Dictionary Dict table 1 GoodBug 2007-10-02 7,224
173 ¿À¶óŬƩ´× redo log file ±¸¼º ¸ð´ÏÅÍ 1 GoodBug 2007-09-20 7,905
172 dictionary ÀÚÁÖ¾²´Â µñ¼Å³Ê¸® Á¤º¸ 1 1 GoodBug 2007-09-20 8,352
171 TableSpace Tablespace º° »ç¿ë·® È®ÀÎ 1 GoodBug 2007-09-20 8,766
170 ¿À¶óŬ üũÆ÷ÀÎÆ® °ü·Ã ÆĶó¹ÌÅÍ 2 GoodBug 2007-09-20 7,420
169 ¿À¶óŬƩ´× Å×ÀÌºí ½ºÄµ Åë°è 1 GoodBug 2007-09-19 7,265
168 ¿À¶óŬƩ´× v$filestat·Î µð½ºÅ© I/O ¸¦ È®ÀÎÇغ¸ÀÚ 1 GoodBug 2007-09-19 10,248
167 ¿À¶óŬƩ´× ORA-04031 ¿¡·¯ ´ëó¹ý ¹× ¿¹¹æ¹ý 1 GoodBug 2007-09-17 13,717
166 ¿À¶óŬƩ´× DB_FILE_MULTIBLOCK_READ_COUNT 1 GoodBug 2007-09-17 7,272
165 TableSpace TableSpace °ü¸® (Dictionary, Locally) 1 GoodBug 2007-09-16 7,774
164 ¿À¶óŬƩ´× ¹®Á¦ÇØ°á ¹× Æ©´× °ü·Ã ºä 2 GoodBug 2007-09-16 7,698
163 segment ¿À¶óŬ SEGMENT 1 GoodBug 2007-09-16 8,628
162 startup ¿À¶óŬ startup½Ã ´Ü°èº° ¿ÀÇ ÆÄÀÏ 1 GoodBug 2007-09-16 7,531
copyright 2005-2024 by Unicorn