¸®´ª½º ½Ã½ºÅÛ ÃÖÀûÈ­ Æ©´×(4)

ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ÀÇ  ÃÖÀûÈ­ – DB¿Í Mysql

 

±Û¾´ÀÌ : ¹®ÅÂÁØ(taejun@tunelinux.pe.kr)

http://tunelinux.pe.kr http://database.sarang.net

 

 

Áö±Ý±îÁö´Â ½Ã½ºÅÛÀÇ ¿î¿µ°ú °ü¸®¸¦ Çϱâ À§ÇÑ ¸ð´ÏÅ͸µ ¹æ¹ý ¹× ÃÖÀûÈ­¿¡ ´ëÇÏ¿© ¼Ò°³¸¦ ÇÏ¿´´Ù. ¿ì¸®°¡ ¼­¹ö¸¦ ¿î¿µÇÏ´Â °ÍÀº ÃÖÁ¾ÀûÀ¸·Î ´Ù¸¥ »ç¿ëÀÚ¿¡°Ô ƯÁ¤ÇÑ ¼­ºñ½º¸¦ Á¦°øÇϱâ À§ÇÑ °ÍÀÌ´Ù. ¿©±â¿¡¼­ ¼­ºñ½º¶ó°í ÇÑ´Ù¸é À¥»Ó¸¸ ¾Æ´Ï¶ó DNS, FTP, MAIL, DB µî ¿©·¯°¡Áö°¡ ÀÖÀ» °ÍÀÌ´Ù. À̹ø °­Á¿¡¼­´Â ÇöÀç ¸®´ª½º¿¡¼­ ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Â °ø°³Çü µ¥ÀÌÅͺ£À̽ºÀÎ MysqlÀ» Áß½ÉÀ¸·Î ÃÖÀûÈ­¿¡ ´ëÇÑ ¼³¸íÀ» ÇÏ°Ú´Ù.

¸®´ª½º ½Ã½ºÅÛ ¸ð´ÏÅ͸µ°ú ÃÖÀûÈ­

2001/8 ¾ÈÁ¤µÈ ½Ã½ºÅÛ °ü¸®¸¦ À§ÇÑ ½Ã½ºÅÛ ¸ð´ÏÅ͸µ Åø Á¦´ë·Î ¾²±â

2001/9 ³×Æ®¿öÅ© ¸ð´ÏÅ͸µ Åø ÀÍÈ÷±â

2001/10 ¿î¿µÃ¼Á¦¿Í Ä¿³Î Â÷¿ø¿¡¼­ÀÇ Æ©´×°ú º¸¾È

2001/11 ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ÀÇ ÃÖÀûÈ­ – DB¿Í Mysql

2001/12 ½Ã½ºÅÛ ¸ð´ÏÅ͸µ ÀÚµ¿È­

 


 

0. Mysql¿¡ ´ëÇÏ¿©

MysqlÀº 1979³â Mysql °³¹ß ȸ»çÀÎ TcX¿¡¼­ µ¥ÀÌÅͺ£À̽º ÇÁ·Î±×·¥À¸·Î óÀ½ »ç¿ëÇß´Ù. Ãʹݿ¡´Â 1³»ºÎÀûÀ¸·Î »ç¿ëÇϱâ À§ÇÑ ¿ëµµ¿´À¸³ª ÀÌÈÄ ±â´ÉÀ» º¸°­Çϸ鼭 °ø°³ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. 1996³â 5¿ù Mysql 1.0 ¹öÀüÀÌ ¹ßÇ¥µÇ¾ú°í 1996³â 10¿ù Mysql 3.11.1 ¹öÀüÀÌ ¼Ö¶ó¸®½º Ç÷§ÆûÀÇ ¹èÆ÷ÆÇÀ¸·Î ÀϹÝÀο¡°Ô °ø°³µÇ¾ú´Ù. ÇÑ´ÞÈÄ¿¡ ¸®´ª½º ¹ÙÀ̳ʸ®¿Í ¼Ò½º ¹èÆ÷ÆÇÀÌ °ø°³µÇ¾ú´Ù.

±¹³»¿¡¼­´Â 90³â´ë Á߹ݱîÁö ¸®´ª½º³ª FreeBSD µî °ø°³¿î¿µÃ¼Á¦¸¦ »ç¿ëÇß´ø »ç¶÷µéÀÇ °æ¿ì ÁÖ·Î msqlÀ̳ª PostgreSQLÀ» »ç¿ëÇß´Ù. ÇÊÀÚ ¶ÇÇÑ msqlÀ» ÀÌ¿ëÇÏ¿© À¥°ú DB¿¬µ¿À» °øºÎÇß¾ú°í ÀÌÈÄ¿¡´Â ÁÖ·Î PostgreSQLÀ» »ç¿ëÇß´Ù. ±×·¯´Ù°¡ 90³â´ë ÈĹݿ¡ µé¸é¼­ ÀÎÅͳÝÀÇ ¹ßÀü°ú ÇÔ²² Mysql »ç¿ëÀÚ°¡ ´ëÆø ´Ã¾î³ª°Ô µÇ¾ú´Ù. ÇÊÀÚ°¡ ¹«½Ä(!)ÇÏ°Ô vi·Î Mysql ¿µ¹® ¸Å´º¾óÀ» ÀϺΠ¹ø¿ªÇß´ø °Íµµ 99³âÃÊ¿´´Ù. ±×·¯³ª ¿¹ÀüÀÇ ¸®´ª½º¿Í ¸¶Âù°¡Áö·Î Æø³ÐÀº »ç¿ëÀÚ¿¡ ºñÇÏ¸é °ü·Ã ÇÑ±Û ÀÚ·á¿Í ¼­ÀûÀº ÇöÀçµµ ¸Å¿ì ºÎÁ·ÇÑ »óÅÂÀÌ´Ù. À§¾ÈÁ¡À̶ó¸é ÀÎÅͳÝÀÇ ´Ù¾çÇÑ »çÀÌÆ®¸¦ ÅëÇÏ¿© È°¹ßÇÏ°Ô Á¤º¸°¡ ¿À°í°¡°í ÀÖ´Â ÁßÀÌÁö¸¸ ÁÖ·Î Áú¹®´ä ÇüÅ·ΠÁ»´õ ¸¹Àº »ç¿ëÀÚ°¡ Âü¿©ÇÏ¿© ´Ù¾çÇÑ ÀڷḦ ¸¸µé Çʿ伺ÀÌ ÀÖ´Ù.

 

ÀϹÝÀûÀ¸·Î ÃÖ±Ù¿¡ ¸®´ª½º µîÀ» ÅëÇØ µ¥ÀÌÅͺ£À̽º¸¦ Á¢ÇÏ´Â °æ¿ì MysqlÀ» ¸¹ÀÌ »ç¿ëÇÑ´Ù. ±×·±µ¥ MysqlÀº À¥¿¡¼­ ºü¸¥ ¼Óµµ¿Í ¼º´ÉÀ¸·Î »ç¿ëÀÚ°¡ ±Þ°ÝÇÏ°Ô ´Ã¾î³ª°í ÀÖÁö¸¸ ÀϹÝÀûÀÎ °ü°èÇü DB¿¡¼­ Áö¿øÇÏ´Â ¿©·¯°¡Áö ±â´ÉÀÌ ºüÁ®ÀÖ´Ù. ÀÌ¿¡ ÇØ´çÇÏ´Â °ÍÀÌ sub-select, Æ®·£Àè¼Ç, ½ºÅä¾îµå ÇÁ·Î½ÃÀú¿Í Æ®¸®°Å, ºä, ¿Ü·¡Å° µîÀÌ´Ù. ¹°·Ð ÃÖ±Ù ¹öÀüÀÇ Mysql¿¡¼­´Â Æ®·£Àè¼ÇÀ» Áö¿øÇÏÁö¸¸ ÀÌ´Â ±âº»À¸·Î Áö¿øÇÏ´Â °ÍÀº ¾Æ´Ï¸ç ÇÊ¿äÇÑ »ç¶÷ÀÌ Á÷Á¢ ¼³Á¤Çؼ­ »ç¿ëÀ» ÇØ¾ß ÇÑ´Ù. À§ÀÇ ±â´ÉµéÀÌ ºüÁ®ÀÖ´Ù°í Çؼ­ µ¥ÀÌÅͺ£À̽º·Î¼­ ¹®Á¦°¡ Àִٱ⺸´Ù´Â ÇØ´ç µ¥ÀÌÅͺ£À̽ºÀÇ Æ¯¼º¿¡ ¸Â´Â ¼­ºñ½º¿¡ ÀûÀýÈ÷ »ç¿ëÀ» ÇÏ¸é µÈ´Ù. °¡Àå ¸¹Àº Áú¹®À» ÇÏ´Â ºÎºÐÀÌ Æ®·£Àè¼Ç ºÎºÐÀε¥ Mysql °³¹ßÀÚÀÇ °æ¿ì´Â óÀ½ ¼³°è½Ã Æ®·£Àè¼Çº¸´Ù´Â ¼Óµµ¿¡ ´ëÇÑ Çʿ伺ÀÌ ´õ ÄDZ⠶§¹®¿¡ Æ®·£Àè¼Ç ºÎºÐÀ» Á¦¿ÜÇÏ¿´´Ù. ÀÌ´Â ´ëºÎºÐÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Æ®·£Àè¼Ç ¾øÀ̵µ Á¤»óÀûÀÎ µ¿ÀÛÀÌ °¡´ÉÇϱ⠶§¹®ÀÌ´Ù. ±×´ë½Å ¾÷µ¥ÀÌÆ® ·Î±× µîÀ» ÅëÇÏ¿© º¸¿Ï ÀÛ¾÷À» ÇÏ°í ÀÖ´Ù. Æ®¸®°ÅÀÇ °æ¿ìµµ ÀÌ¿Í ºñ½ÁÇÏ´Ù. Æ®¸®°Å´Â Ưº°ÇÑ À̺¥Æ®°¡ ¹ß»ýÇÏ¿´À» ¶§ ½ÇÇàµÇ´Â ½ºÅä¾îµå ÇÁ·Î½ÃÁ®·Î º¸¸é µÈ´Ù. ¿¹¸¦ µé¾î Æ®·£Àè¼Ç Å×ÀÌºí¿¡¼­ ·¹Äڵ尡 »èÁ¦µÇ°í ¸ðµç Æ®·£Àè¼ÇÀÌ Áö¿öÁú ¶§ »óÀÀÇÏ´Â Å×À̺íÀ» »èÁ¦ÇÒ ¼ö ÀÖ´Â ½ºÅä¾îµå ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô µÇ¸é ÇÊ¿äÇÏÁö ¾ÊÀº °æ¿ì¿¡µµ Æ®¸®°Å°¡ »ç¿ëÀÌ µÉ ¼ö À־ ÀϹÝÀûÀ¸·Î ¼Óµµ°¡ ´À·ÁÁø´Ù. MysqlÀº ÀÌ·¸°Ô ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ´Â ºÎºÐÀ» Á¦°ÅÇÏ¿© ºü¸¥ ¼Óµµ¸¦ ³»°í ÀÖ´Ù. ±×·¯¹Ç·Î ÀÚ½ÅÀÇ ¼­ºñ½º¿¡¼­ »ç¿ëÇÏ·Á´Â µ¥ÀÌÅͺ£À̽ºÀÇ Æ¯¼ºÀÌ ¾ó¸¶³ª Áß¿äÇÑ°¡¶ó´Â ÆÇ´ÜÀ» ÇؾßÇÑ´Ù. Âü°í·Î ¼ÒÇü DBMS¿¡¼­´Â ȸº¹°ú º´Çà¼öÇàÀ» Áö¿øÇÏ´Â ¾Ê´Â °æ¿ì°¡ ¸¹´Ù. Áï º´Çà¼öÇàÀº ¹ß»ýÇÏÁö ¾ÊÀ¸¸ç, ȸº¹Àº »ç¿ëÀÚÀÇ ¹®Á¦·Î »ý°¢ÇÑ´Ù. ±×·¯¹Ç·Î »ç¿ëÀÚ°¡ µ¥ÀÌÅͺ£À̽ºÀÇ ¿¹ºñ »çº»À» ÁغñÇÏ°í °íÀåÀÌ ¹ß»ýÇϸé ÀÛ¾÷À» ´Ù½Ã ÇØ¾ß ÇÑ´Ù. Æ®¸®°Å °°Àº °æ¿ì´Â ÀÚ·áÀÇ ¹«°á¼º º¸ÀåÀ» À§ÇØ ÇÊ¿äÇÑ °ÍÀÌ´Ù.

 

¿©±â¼­ ÁÖÀÇÇÒ Á¡Àº À§¿¡¼­ ¸»À» ÇÑ´ë·Î ÃÖ±Ù ¸®´ª½º¸¦ ÅëÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ óÀ½ »ç¿ëÇÏ´Â °æ¿ì MysqlÀ» ¸¹ÀÌ »ç¿ëÇÏÁö¸¸ ÀÌ ¶§¹®¿¡ µ¥ÀÌÅͺ£À̽º°¡ °¡Áø ¿©·¯°¡Áö ±â´ÉµéÀ» Á¼°Ô º¸Áö´Â ¸»¶ó´Â °ÍÀÌ´Ù. ½ÇÁ¦ µ¥ÀÌÅͺ£À̽º¸¦ ¿î¿µÇÏ´Â °æ¿ì Æ®·£Àè¼Ç 󸮺κеµ ¸Å¿ì Áß¿äÇÑ ºÎºÐÀ̸ç ÇöÀç »ç¿ëÇÏÁö´Â ¾Ê´Â´Ù°í ÇÏ´õ¶óµµ ²À ¾Ë°í ÀÖ¾î¾ß ÇÏ´Â ºÎºÐÀÌ¸ç ½ºÅä¾îµå ÇÁ·Î½ÃÁ®, Æ®¸®°Å, ºä µîµµ ÀϹÝÀûÀ¸·Î ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿¡¼­´Â ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ°í À¯¿ëÇÑ ±â´ÉµéÀÌ´Ù. MysqlÀÇ °æ¿ì µ¥ÀÌÅͺ£À̽º¸¦ óÀ½ »ç¿ëÇÏ´Â »ç¶÷¿¡°Ô´Â ¼³Ä¡¿Í °ü¸®°¡ ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿¡ ºñÇÏ¿© ½¬¿î ÆíÀÌÁö¸¸ °Å²Ù·Î ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿¡¼­ Áö¿øÇÏ´Â ¿©·¯°¡Áö °³³äÀ̳ª ±â´ÉÀ» ¸Àº¸Áö ¸øÇÑ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ±×·± ¸é¿¡¼­ ±¹³»¿¡¼­ °¡Àå ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Â ¿À¶óŬÀ» Æ÷ÇÔÇÏ¿© ÀÎÆ÷¹Í½º, »çÀ̺£À̽º, IBMÀÇ DBII µîÀÇ »ó¿ë µ¥ÀÌÅͺ£À̽ºµµ ¸ðµÎ ¸®´ª½º¿¡¼­ Áö¿øµÇ°í ÀÖÀ¸¹Ç·Î ÀÌ¿¡ ´ëÇÑ ¿î¿µ°æÇèÀ» Çغ¸´Â °Íµµ ÇÊ¿äÇÏ¸ç ¿ÏÀüÇÑ °ø°³Çü DBMSÀÎ PostgreSQLµµ °ü½ÉÀ» °¡Á®º¸¸é ÁÁÀ» °ÍÀÌ´Ù. PostgreSQLÀÇ °æ¿ì °´Ã¼ÁöÇâ ±â´ÉÀ» °¡Áö°í ÀÖ´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛÀ¸·Î °ü°èÇü ¸ðµ¨, °í¼öÁØ È®À强, °´Ã¼ÁöÇâ µîÀÇ Æ¯Â¡À» °¡Áö°í ÀÖ°í °ø°³ DBMS·Î´Â µå¹°°Ô Æ®·£Àè¼ÇÀ» ÀÌÀüºÎÅÍ Áö¿øÇØ¿Ô´Ù.

 

±×¸² 1 MySQL »çÀÌÆ®

 

2. µ¥ÀÌÅͺ£À̽º Æ©´×

Mysql¿¡ ´ëÇÑ ¼³¸í¿¡ µé¾î°¡±â Àü¿¡ ÀϹÝÀûÀÎ µ¥ÀÌÅͺ£À̽º Æ©´×¿¡ ´ëÇÑ ¼³¸íÀ» ¸ÕÀú ÇÑ´Ù. ¿©±â¼­´Â ¿À¶óŬÀÇ Æ©´× ¹®¼­ ³»¿ëÀ» Áß½ÉÀ¸·Î ¼³¸íÇÏ°Ú´Ù. ºñ·Ï DB´Â ´Ù¸£Áö¸¸ Æ©´× Àü¹Ý¿¡ ´ëÇÑ ÀÌÇظ¦ ÇÏ´Â µ¥¿¡´Â µµ¿òÀÌ µÉ °ÍÀÌ°í ÀÌ·¯ÇÑ ³»¿ëÀ» Âü°í·Î ÇÏ¿© Mysql¿¡ Àû¿ëÀ» ÇÒ ¼ö ÀÖ´Ù.

 

¤· Æ©´×½Ã±â¿Í Á߿伺

µ¥ÀÌÅͺ£À̽º Æ©´×Àº ºÒÇÊ¿äÇÑ ÀÏÀ» ÃÖ¼ÒÈ­ÇÏ°í º¸´Ù ÀûÀº ºñ¿ëÀ¸·Î ´õ ¸¹Àº °á°ú¸¦ ³»°íÀÚ ÇÏ´Â È°µ¿À» ¸»ÇÑ´Ù. ±×·±µ¥ Æ©´×À» ÀÀ¿ë ÇÁ·Î±×·¥À» °³¹ß ¿Ï·áÇÏ°í ½ÇÁ¦ ¼­ºñ½º ÀÌÀü¿¡ ¼º´É ½ÃÇè ´Ü°è¿¡¼­ ÁøÇàÇÏ´Â °ÍÀ¸·Î ÆÇ´ÜÀ» ÇÒ °æ¿ì ¹®Á¦°¡ »ý±æ ¿©Áö°¡ ¸¹´Ù. ½ÇÁ¦ °³¹ßÀ» ¸ðµÎ ¿Ï·áÇÏ°í ³ª¼­´Â ¾î¶² ¹®Á¦°¡ »ý±ä´Ù°í ÇÏ´õ¶óµµ ±× ¿øÀÎÀ» ã±â°¡ ¸Å¿ì ¾î·Æ°í ½Ã½ºÅÛ¿¡¼­ º´¸ñ Çö»óÀÌ »ý°Üµµ ±×·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­´Â ´õ ¸¹Àº ºñ¿ë°ú ÀÛ¾÷ÀÌ µé¾î°£´Ù. µ¥ÀÌÅͺ£À̽º Æ©´×Àº ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇϴ óÀ½ºÎÅÍ ¸¶Áö¸· ´Ü°è±îÁö °è¼Ó ÁøÇàÇØ¾ß ÇÒ ºÎºÐÀÌ´Ù. Design, Development, Production À¸·Î ÇÁ·ÎÁ§Æ® ´Ü°è¸¦ ³ª´­ °æ¿ì µðÀÚÀÎ ´Ü°èºÎÅÍ Æ©´×¿¡ ´ëÇÑ ÅõÀÚ¸¦ ÇØ¾ß ±× È¿°ú°¡ Å©´Ù. ±×¸² 1°ú ±×¸² 2´Â Oracle8i Tuning Release ¹®¼­¿¡¼­ Á¦½ÃÇÏ°í ÀÖ´Â ±×·¡ÇÁ·Î Æ©´×À» ¾ðÁ¦ ÇؾßÁö ±× È¿°ú¸¦ º¼ ¼ö ÀÖ°í ºñ¿ëÀ» Àý¾àÇÒ ¼ö ÀÖ´ÂÁö º¸¿©ÁØ´Ù.

 

±×¸² 2 ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ±â°£ ÁßÀÇ Æ©´× ºñ¿ë

 

 

±×¸² 3 ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ±â°£ ÁßÀÇ Æ©´× È¿°ú

 

 

±×·±µ¥ ªÀº ÇÁ·Î±×·¥ °³¹ß ±â°£¶§¹®¿¡ µ¥ÀÌÅͺ£À̽ºÀÇ ¼Óµµ³ª È¿À²¼º µîÀ» °í·ÁÇÏÁö ¸øÇÑä °³¹ßÀÌ ÁøÇàµÇ´Â °æ¿ì°¡ ¸¹Àº °ÍÀÌ Çö½ÇÀÌ´Ù. °³¹ß ÀÚü¸¸µµ ¹÷Âùµ¥ µ¥ÀÌÅͺ£À̽º¿¡ ÀÖ´Â ¿©·¯°¡Áö ±â´ÉÀº Ä¿³ç ±âº»ÀûÀÎ SQL¸¸ ÀÍÈ÷°í °³¹ß¿¡ µé¾î°¡´Â °æ¿ìµµ ¸¹´Ù. ÀÌ·¯ÇÑ °æ¿ì ¹®Á¦°¡ ¹ß»ýÇÏ°í ³ª¼­ ±×·¯ÇÑ ¹®Á¦µéÀ» ÇØ°áÇϴµ¥ ¸¹Àº ½Ã°£À» Åõ¿©ÇÏ°Ô µÇ°í ¾î¶² °æ¿ì¿¡´Â óÀ½ºÎÅÍ µ¥ÀÌÅͺ£À̽º ¼³°è¸¦ ´Ù½Ã µé¾î°¡´Â °æ¿ìµµ »ý±ä´Ù. ±»ÀÌ ±Ô¸ð°¡ ÀÖ´Â µ¥ÀÌÅͺ£À̽º°¡ ¾Æ´Ï¶ó °£´ÜÇÏ°Ô ¸çÄ¥Á¤µµ¿¡ © ¼ö ÀÖ´Â ÇÁ·Î±×·¥µµ ÀÛ¼ºÇÏ°í ³ª¼­ ºñÈ¿À²¼º ¶§¹®¿¡ ´Ù½Ã ¶â¾î°íÄ¡´Â °æ¿ì°¡ ¸¹Àºµ¥ ÇϹ°¸ç ¼­ºñ½ºÀÇ ±Ô¸ð°¡ Ä¿Áú¼ö·Ï µ¥ÀÌÅͺ£À̽º ¼³°èÀÇ Á߿伺Àº Ä¿Áö°í ÀÖ´Ù.

 

Æ©´×ÀÇ °æ¿ìµµ Å©°Ô º¸¸é DB°ü¸®ÀÚ, ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ, Çϵå¿þ¾îÀÇ °ü¸®ÀÚµîÀ¸·Î ³ª´­ ¼ö Àִµ¥ °¢ÀÚ ¸ÃÀº ºÐ¾ß¿¡¼­ Çù·ÂÇÏ¿© ÁøÇàÇÏ¿©¾ß ÇÑ´Ù.  DB°ü¸®ÀÚÀÇ °æ¿ì DB ¼ÒÇÁÆ®¿þ¾îÀÇ È¿À²À» ±Ø´ëÈ­ÇØ¾ß ÇÒ Ã¥ÀÓÀÌ ÀÖ°í ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ´Â SQLÀ» Æ©´×ÇÏ°í ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ½Ã½ºÅÛ ¸®¼Ò½º¸¦ ÀûÀýÈ÷ È°¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÁ·Î±×·¥À» °³¹ßÇØ¾ß Çϸç Çϵå¿þ¾î °ü¸®ÀÚÀÇ °æ¿ì Çϵå¿þ¾î¸¦ È¿À²ÀûÀ¸·Î ¿î¿µÇÒ ¼ö ÀÖµµ·Ï Æ©´× ÀÛ¾÷À» ÁøÇàÇؾßÇÑ´Ù. Ãß°¡ÀûÀ¸·Î ´õ ¼¼ºÐÈ­ÇÑ´Ù¸é ¾÷¹«±ÔÄ¢À» Æ©´×ÇÏ°í Àüü ½Ã½ºÅÛ ±¸¼ºÀ» Ã¥ÀÓÁú ÀÀÀÀ ÇÁ·Î±×·¥ ¼³°èÀÚ, È¿À²ÀûÀÎ µ¥ÀÌÅͺ£À̽º ½ºÅ°¸¶ µðÀÚÀÎÀ» ÇÒ µ¥ÀÌÅͺ£À̽º ¼³°èÀÚ µîÀ¸·Î ³ª´­ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

¤· Æ©´× ÀýÂ÷

¿À¶óŬ¿¡¼­´Â Æ©´× ÀýÂ÷¸¦ ¾Æ·¡¿Í °°ÀÌ 10´Ü°è·Î º¸°í ÀÖ´Ù. ¸ÕÀú ³ª¿À´Â ´Ü°è°¡ ±×¸¸Å­ ´õ Áß¿äÇÏ´Ù°í º¼ ¼ö ÀÖ´Ù. °¢ ´Ü°è´Â ±× ÀÌÈÄ ´Ü°è¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù. ¿¹¸¦ µé¾î 5¹ø° ´Ü°è¿¡¼­ SQL¹®À» ÀçÀÛ¼ºÇÏ´Â °æ¿ì 7¹ø° ´Ü°èÀÎ ¸Þ¸ð¸® ÇÒ´ç¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù. ¿À¶óŬ¿¡¼­´Â °øÀ¯ ¿µ¿ª¿¡ ÀÌÀü¿¡ »ç¿ëµÈ °°Àº SQL¹®ÀåÀÌ ÀÖ´ÂÁö È®ÀÎÇÏ°í ¾øÀ¸¸é ´Ù½Ã ÄÄÆÄÀÏ, ±ÇÇÑ °Ë»ç, ¹®¹ý ¿À·ù µîÀ» °Ë»çÇؼ­ °øÀ¯ ¿µ¿ª¿¡ ¿Ã·Á³õ´Â´Ù. ±×·¯¹Ç·Î °øÀ¯ ¿µ¿ª¿¡ ÀÖ´Â SQL¹®ÀåÀº À§¿Í °°Àº °úÁ¤À» °ÅÄ¥ ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î ¼º´É Çâ»ó¿¡ µµ¿òÀÌ µÇ´Â °ÍÀÌ´Ù. µð½ºÅ© I/OÀÇ °æ¿ì 8¹ø° ´Ü°è¿¡¼­ Æ©´× ÀÛ¾÷À» ÁøÇàÇϴµ¥ µð½ºÅ© I/O´Â ¹öÆÛ Ä³½¬ÀÇ Å©±â¿Í ¿¬°üÀÌ Àֱ⠶§¹®¿¡ 7¹ø° ¸Þ¸ð¸® ÇÒ´ç ´Ü°è¿Í ¿¬°üÀ» °¡Áø´Ù.

ù¹ø° ´Ü°è´Â »ç¿ëÀÚÀÇ ¿ä±¸¸¦ ºÐ¼®ÇÏ°í ¾÷¹«¸¦ Æ©´×ÇÏ´Â ´Ü°èÀε¥ ÀÌ´Â ±â¼úÀûÀÎ ¹®Á¦¸¸Àº ¾Æ´Ï¸ç »ç¿ëÀÚÀÇ ¿ä±¸¿¡ ¹«Á¶°Ç ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¶Ä¡´Â °ÍÀÌ ¾Æ´Ï¶ó È¿À²ÀûÀÎ ¾÷¹« 󸮸¦ À§ÇÏ¿© ¾÷¹« ó¸® °úÁ¤ ÀÚü¸¦ °³¼±ÇØ¾ß ÇÒ Çʿ伺µµ °í·Á¸¦ ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ƯÁ¤ÇÑ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÏ´Â »ç¿ëÀÚÀÇ °æ¿ì ´Ü¼øÇÏ°Ô Á¶È¸¸¸ ÇÊ¿äÇÑ »ç¶÷ÀÌ ÀÖÀ¸¸ç À̸¦ ¼öÁ¤, »èÁ¦ µî Á¶ÀÛÀ» ÇØ¾ß ÇÒ »ç¶÷ÀÌ ÀÖÀ» °ÍÀε¥ ÀÌ·¯ÇÑ °æ¿ì¿¡´Â ¾÷¹«¸¦ Á¶Á¤ÇÏ°í »ç¿ëÀÚ¸¶´Ù ´Ù¸¥ ±ÇÇÑÀ» ÁÖµµ·Ï ¾÷¹«¸¦ º¯°æÇÏ¸é ºÒÇÊ¿äÇÑ Á¤º¸Á¢±ÙÀ» ¸·°í ¼öÇà ¼Óµµµµ ºü¸£°Ô ÇÒ ¼ö ÀÖ´Ù.

 

±×¸² 4 Æ©´× ÀýÂ÷

 

ÀÌ¿Ü¿¡µµ ±¸Ã¼ÀûÀÎ Æ©´× Àû¿ë ¹æ¹ý, ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÇüÅÂ(OLTP, Data Warehousing, Ŭ¶óÀ̾ðÆ®/¼­¹ö µî)¿¡ µû¸¥ Æ©´× ¹æ¹ý µîÀ» °í·ÁÇØ¾ß Çϴµ¥ ÀÌ¿¡ ´ëÇؼ­´Â º°µµÀÇ ¼­ÀûÀ» Âü°íÇϱ⠹ٶõ´Ù. À§¿¡¼­ º¸¾ÒµíÀÌ µ¥ÀÌÅͺ£À̽º Æ©´×ÀÌ ´Ü¼øÇÑ°Ô ¸î °³ÀÇ ¼­¹ö ÆĶó¹ÌÅÍ ¼öÁ¤À̳ª SQL¹® ¼öÁ¤¸¸À¸·Î ÀÌ·ç¾îÁö´Â °ÍÀº ¾Æ´Ï¸ç ¿©·¯°¡Áö ¿ä¼Ò¸¦ µÎ·ç °í·ÁÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.

 

 

3. Mysql Æ©´× °³¿ä

ÀÌ ±Û¿¡¼­ ÀüüÀûÀÎ Mysql Æ©´×À» ¼³¸íÇϱâ´Â Èûµé¸ç Å« Ʋ¿¡¼­ ÁÖ·Î »ìÆ캸¾Æ¾ß ÇÒ ºÎºÐµéÀ» ÁöÀûÇÏ°Ú´Ù.

¸ÕÀú ½Ã½ºÅÛ Æ©´×À» À§Çؼ­ °¡Àå Áß¿äÇÑ ºÎºÐ Áß Çϳª´Â ±âº»ÀûÀÎ ½Ã½ºÅÛ ¼³°èÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÁÖ¿ä º´¸ñ ÁöÁ¡ÀÌ µÇ´Â °ÍÀº µð½ºÅ© Ž»ö½Ã°£, µð½ºÅ© Àбâ/¾²±â, CPU »çÀÌŬ, ¸Þ¸ð¸® µîÀ¸·Î º¼ ¼ö ÀÖ´Ù. ÀÚ½ÅÀÌ ¾î¶² ¼­ºñ½º¸¦ ÇÒ °ÍÀÎÁö ¸ÕÀú °í·Á¸¦ ÇÏ°í ÇöÀçÀÇ ½Ã½ºÅÛ¿¡¼­ º´¸ñ ÁöÁ¡ÀÌ µÉ ºÎºÐµéÀ» ¹Ì¸® ÆľÇÇØ¾ß ÇÑ´Ù.

 

¼º´É Æ©´×Àº SQL/DB±¸Á¶ ¼³°è/¼­¹ö ¼¼ÆÃÀ¸·Î ³ª´©¾î º¼ ¼ö ÀÖ´Ù.

 

¤· SQL Æ©´× : EXPLAIN °ú select ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© sql¹®ÀÌ ¾î¶»°Ô ½ÇÇàµÇ´ÂÁö À妽º°¡ »ç¿ëµÇ´ÂÁö joinÀº ¾î¶² ½ÄÀ¸·Î ±¸ÇöµÇ´ÂÁö µî¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë ¼ö ÀÖ´Ù. ÁúÀǹ®ÀÇ ¼º´ÉÀº ÀϹÝÀûÀ¸·Î µð½ºÅ© °Ë»ö Ƚ¼ö¿¡ µû¶ó ÃøÁ¤ÀÌ °¡´ÉÇÏ´Ù. myisamchk µîÀÇ ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© DBÀÇ »óŸ¦ ºÐ¼®ÇÏ°í À妽º¿¡ µû¶ó Á¤·ÄÀ» ÇÏ´Â µîÀÇ ÃÖÀûÈ­ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù. Where, distinct, join, limit µîÀÇ »ç¿ë¹æ¹ý¿¡ µû¶ó ÃÖÀûÈ­ÀÇ ¹æ¹ýÀÌ ÀÖÀ¸¸ç INSERT, UPDATE, DELETE µîÀÇ ÁúÀǸ¦ ¼öÇàÇÏ´Â °æ¿ì¿¡µµ È¿À²ÀûÀÎ ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ÅؽºÆ® ÆÄÀÏÀÇ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÒ °æ¿ì INSERT¹®À» »ç¿ëÇÏ´Â °Íº¸´Ù´Â LOAD DATA INFILE ¸í·ÉÀ» ÀÌ¿ëÇÏ´Â °ÍÀÌ ÈξÀ ¼Óµµ°¡ ºü¸£¸ç ¿©·¯ °³ÀÇ ·¹Äڵ带 ÀÔ·ÂÇÒ °æ¿ì¿¡´Â °³º°ÀûÀ¸·Î ÀÔ·ÂÀ» ÇÏ´Â °Íº¸´Ù ÇϳªÀÇ INSERT ¹®À» ÀÌ¿ëÇÏ´Â °ÍÀÌ ºü¸£´Ù.

 

mysql> INSERT INTO a VALUES (1,23),(2,34),(4,33);

 

¿©±â¼­ ¼Óµµ Â÷ÀÌ°¡ »ý±â´Â °ÍÀº ¸ðµç INSERT ¹®ÀÌ ¿Ï·áµÇ°í ³­ ÈÄ¿¡ Çѹø¿¡ À妽º ¹öÆÛ¿¡ ±â·ÏÀ» Çϱ⠶§¹®ÀÌ´Ù.

 

¤· DB ±¸Á¶ ¼³°è : mysqlÀº µ¥ÀÌÅÍ¿Í À妽º ÆÄÀÏÀ» º°µµ·Î µÎ´Â ±¸Á¶·Î µÇ¾î ÀÖ´Ù. DB ±¸Á¶¸¦ ¼³°èÇÏ´Â °æ¿ì °¡±ÞÀû µ¥ÀÌÅ͸¦ ÀÛ°Ô ¸¸µå´Â °ÍÀÌ Áß¿äÇÏ´Ù. ÀÌ´Â ÀûÀýÇÑ Ä®·³ ŸÀÔ ¼±ÅÃ, not null »ç¿ë, ENUM »ç¿ëµîÀÌ Æ÷ÇԵȴÙ. À妽ºÀÇ °æ¿ì DBÀÇ ¼º´É¿¡ ¸¹Àº ¿µÇâÀ» ¹ÌÄ¡´Âµ¥ ¹«Á¶°Ç À妽º¸¦ ¾´´Ù°í ¼º´ÉÀÌ »¡¶óÁö´Â °ÍÀº ¾Æ´Ï¸ç ¼­ºñ½ºÀÇ Æ¯¼º¿¡ µû¶ó À妽º¸¦ »ç¿ëÇؾßÇÑ´Ù. ¶ÇÇÑ À妽º¸¦ »ç¿ëÇÑ´Ù°í Çصµ ÀûÀýÇÏ°Ô SQL¹®À» ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é ½ÇÁ¦·Î´Â »ç¿ëÀ» ÇÏÁö ¸øÇÏ´Â °æ¿ì°¡ »ý±æ ¼ö ÀÖ´Ù. À妽º »ç¿ëÀº EXPLAIN ¸í·ÉÀ¸·Î È®ÀÎÀ» ÇÒ ¼ö ÀÖ´Ù. ¼­¹ö°ü·Ã º¯¼öÁß table_cache, max_connections ´Â ¼­¹ö°¡ ¿­ ¼ö ÀÖ´Â ÃÖ´ë ÆÄÀÏ °³¼ö¿Í ¿¬°üÀ» °¡Áø´Ù. Max_connections´Â ¼­¹ö¿¡ µ¿½Ã Á¢¼ÓÇÒ¼ö À̴ Ŭ¶óÀ̾ðÆ®ÀÇ ÃÖ´ë¼ö¸¦ ÁöÁ¤ÇÏ°í table_cache´Â ¸ðµç ½º·¹µå¿¡¼­ ¿­¼ö ÀÖ´Â Å×ÀÌºí ¼ýÀÚ¸¦ ÁöÁ¤ÇϹǷΠÅ×À̺í°ú ¿¬°üµÈ ÆÄÀÏ ±â¼úÀÚ¿Í °ü·ÃÀÌ Àֱ⠶§¹®ÀÌ´Ù. ¼­¹ö¿¡¼­ ¿­¾î¾ß ÇÒ Å×ÀÌºí °³¼ö¸¦ ¹Ì¸® ¿¹ÃøÇÏ¿© ¼öÄ¡¸¦ Á¶Á¤ÇÏ´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù.

 

¤· ¼­¹ö ¼¼Æà : ÁÖ·Î ½Ã½ºÅÛ ¹× Mysql ¼­¹ö¿Í °ü·ÃÇÑ ¼¼Æà ºÎºÐÀÌ´Ù. ÇöÀç Mysql¿¡¼­ ´ÙÁß CPU±â´ÉÀ» Àß È°¿ëÇÒ ¼ö ÀÖ´Â ¿î¿µÃ¼Á¦·Î´Â ¼Ö¶ó¸®½º¿Í ¸®´ª½º¸¦ ÃßõÇÏ°í ÀÖ´Ù. ¸®´ª½º¿¡¼­ 2G ÆÄÀÏ ÇÑ°è´Â Ä¿³Î 2.4¿¡ µé¾î¿À¸é¼­ºÎÅÍ Á¦¾àÀÌ ¾ø¾îÁ³´Ù. Mysql ¼­¹ö ¼¼Æà °ü·ÃÇÑ º¯¼ö´Â µû·Î ¼³¸íÇÏ°Ú´Ù. ÄÄÆÄÀÏ ¹× ¸µÅ©½Ã¿¡´Â Á¤Àû(static)À¸·Î ¸µÅ©ÇÏ´Â °ÍÀÌ ´õ ºü¸¥ ¼Óµµ¸¦ ³¾ ¼ö ÀÖÀ¸¸ç gccº¸´Ù´Â pgcc¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ È¿À²ÀûÀÌ´Ù. TCP/IP ´ë½Å À¯´Ð½º ¼ÒÄÏÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡ 7.5%Á¤µµÀÇ ¼Óµµ Çâ»ó È¿°ú°¡ ÀÖ´Ù. ÀÌ¿Ü¿¡ mysql¿¡¼­ ¸Þ¸ð¸®¿Í DNS¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ÀÌÇØÇÏ°í ÀÖ¾î¾ßÇÏ°í mysql ¼­¹ö¿Í °ü·ÃÇÑ ¼¼ÆÃÀº set ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. ±âŸ ¼­¹ö¿Í °ü·ÃÇÑ ¼¼ÆÃÀº ½Éº¼¸¯ ¸µÅ©, RAID »ç¿ëµî°úµµ ¿¬°üÀÌ ÀÖ´Ù.

 

 

 

4. Mysql ¼­¹ö º¯¼ö

mysql¿¡¼­ mysqld ¼­¹ö¿Í °ü·ÃÇÑ ±âº» ¹öÆÛ Å©±â´Â ¾Æ·¡ÀÇ ¸í·ÉÀ» ÀÌ¿ëÇØ È®ÀÎÇÒ ¼ö ÀÖ´Ù.

 

¸®½ºÆ® 1. mysql ¼­¹ö º¯¼ö º¸±â

 

$ mysqld –help

 

 

Possible variables for option --set-variable (-O) are:

back_log               current value: 50

binlog_cache_size      current value: 32768

connect_timeout        current value: 5

delayed_insert_timeout  current value: 300

delayed_insert_limit     current value: 100

delayed_queue_size    current value: 1000

flush_time            current value: 0

interactive_timeout   current value: 28800

join_buffer_size      current value: 131072

key_buffer_size       current value: 8388600

long_query_time       current value: 10

lower_case_table_names  current value: 0

max_allowed_packet    current value: 1048576

max_binlog_cache_size  current value: 4294967295

max_binlog_size       current value: 1073741824

max_connections       current value: 100

max_connect_errors    current value: 10

max_delayed_threads   current value: 20

max_heap_table_size   current value: 16777216

max_join_size         current value: 4294967295

max_sort_length       current value: 1024

max_tmp_tables        current value: 32

max_user_connections  current value: 0

max_write_lock_count  current value: 4294967295

myisam_sort_buffer_size  current value: 8388608

myisam_max_extra_sort_file_size  current value: 256

myisam_max_sort_file_size  current value: 2047

net_buffer_length     current value: 16384

net_retry_count       current value: 10

net_read_timeout      current value: 30

net_write_timeout     current value: 60

open_files_limit      current value: 0

query_buffer_size     current value: 0

record_buffer         current value: 131072

slow_launch_time      current value: 2

sort_buffer           current value: 2097144

table_cache           current value: 64

thread_concurrency    current value: 10

thread_cache_size     current value: 0

tmp_table_size        current value: 33554432

thread_stack          current value: 65536

wait_timeout          current value: 28800

 

 

Mysqld ¼­¹ö°¡ ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â °æ¿ì¿¡´Â ¾Æ·¡ ¸í·ÉÀ» ÅëÇØ ½ÇÁ¦ °ªÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

 

$ mysqladmin variables

 

¿©±â¼­ Áß¿äÇÑ ¹öÆÛ ¹× ȯ°æ ¼³Á¤ º¯¼ö¿¡ ´ëÇÏ¿© ¼³¸íÇÏ°Ú´Ù.

 

¤· key_buffer_size : À妽º ºí¶ôÀº ¹öÆÛ¸µµÇ°í ¸ðµç ½º·¹µå¿¡¼­ °øÀ¯ÇÑ´Ù. Å° ¹öÆÛ´Â À妽º ºí¶ô¿¡¼­ »ç¿ëÇÏ´Â ¹öÆÛÀÇ Å©±âÀÌ´Ù.
À妽º°¡ ¸¹Àº Å×ÀÌºí¿¡¼­ delete³ª insert ÀÛ¾÷À» ¸¹ÀÌ Çϸé Å° ¹öÆÛ°ªÀ» Áõ°¡½ÃÅ°´Â °ÍÀÌ ÁÁ´Ù. ´õ ºü¸¥ ¼Óµµ¸¦ ³»·Á¸é LOCK TABLES¸¦ »ç¿ëÇÏÀÚ.

¤· max_connections : µ¿½Ã Á¢¼Ó °¡´ÉÇÑ Å¬¶óÀ̾ðÆ® ¼ýÀÚ. µ¿½ÃÁ¢¼ÓÀÚ¼ö¸¦ ´Ã¸®¸é ¿î¿µÃ¼Á¦»ó¿¡¼­ mysqld°¡ ÇÊ¿ä·ÎÇÏ´Â ÆÄÀÏ Áö½ÃÀÚ(descriptor)ÀÇ ¼ýÀÚ¸¸Å­ °ªÀ» ´Ã·Á¾ß ÇÑ´Ù. 
¤· table_cache : ¸ðµç ½º·¹µå¿¡¼­ ¿­ ¼ö ÀÖ´Â Å×À̺íÀÇ ¼ýÀÚ. mysqlÀº °¢ À¯ÀÏÇÑ ¿ÀÇ Å×ÀÌºí¿¡¼­ µÎ°³ÀÇ ÆÄÀÏ µð½ºÅ©¸³ÅÍ°¡ ÇÊ¿äÇÏ´Ù.
Çѹø ¿¬ Å×À̺íÀÇ Ä³½¬´Â table_cache±îÁö Ä¿Áú ¼ö ÀÖ´Ù.
¤· join_buffer_size : À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â Á¶ÀÎÀÇ full-join¿¡¼­ »ç¿ëÇÏ´Â ¹öÆÛÀÇ Å©±â. ¹öÆÛ´Â µÎ Å×ÀÌºí »çÀÌ¿¡¼­ °¢ full-join¸¶´Ù Çѹø ÇÒ´çÀÌ µÈ´Ù.
À妽ÌÀ» Ãß°¡ÇÏÁö ¸øÇÒ ¶§ Á¶ÀÎ ¹öÆÛ¸¦ Áõ°¡½ÃÅ°¸é full joinÀÇ ¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù. (ÀϹÝÀûÀ¸·Î ºü¸£°Ô Á¶ÀÎÀ» ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀº À妽º¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù)
¤· max_allowed_packet : ÇÑ ÆÐŶÀÇ ÃÖ´ë Å©±â. ¸Þ½ÃÁö ¹öÆÛ´Â net_buffer_length ¹ÙÀÌÆ®·Î ÃʱâÈ­µÇÁö¸¸ ÇÊ¿äÇϸé ÃÖ´ë Çã¿ë ÆÐŶ ¹ÙÀÌÆ®¸¦ Áõ°¡½Ãų ¼ö ÀÖ´Ù.
±âº»°ªÀº Å« ÆÐŶÀ» Àâ±â¿¡´Â ÀÛ´Ù. °Å´ë BLOB Ä÷³À» »ç¿ëÇÑ´Ù¸é °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù. »ç¿ëÀÚ°¡ ¿øÇÏ´Â ÃÖ´ë blob¸¸Å­ Å©°Ô  ÇØ¾ß ÇÑ´Ù
¤· max_join_size : ÃÖ´ë Á¶ÀÎ Å©±âÀÌ»óÀ¸·Î ·¹Å©µå¸¦ Àд Á¶ÀÎÀ» ÇÏ¸é ¿¡·¯°¡ ³­´Ù.
¸¸¾à »ç¿ëÀÚ°¡ where ¹®À» »ç¿ëÇÏÁö ¾Ê°í ½Ã°£ÀÌ ¸¹ÀÌ °É¸®¸é¼­ ¸î¹é¸¸°³ÀÇ ·¹Äڵ带 Àд Á¶ÀÎÀ» ¼öÇàÇÏ·Á Çϸé ÀÌ °ªÀ» ¼³Á¤ÇÑ´Ù
¤· record_buffer : ¼øÂ÷ÀûÀÎ °Ë»öÀ» ÇÏ´Â °¢ ½º·¹µå¿¡¼­ °¢ °Ë»ö Å×ÀÌºí¿¡ ÇÒ´çÇÏ´Â ¹öÆÛ Å©±â. ¼øÂ÷ÀûÀÎ °Ë»öÀ» ¸¹ÀÌ Çϸé ÀÌ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù.
¤· sort_buffer : Á¤·ÄÀÌ ÇÊ¿äÇÑ °¢ ½º·¹µå¿¡¼­ ÇÒ´çÇÏ´Â ¹öÆÛ Å©±â. order by ³ª group by ¿ÀÆÛ·¹À̼ÇÀ» ºü¸£°Ô ÇÏ·Á¸é ÀÌ °ªÀ» Áõ°¡½ÃŲ´Ù.
¤· thread_cache_size : Àç»ç¿ëÀ» À§ÇØ Ä³½¬¿¡ ³²°ÜµÑ ½º·¹µå ¼ýÀÚ
¤· tmp_table_size : ¸Þ¸ð¸® ±â¹ÝÀÇ Àӽà Å×À̺íÀÌ ÀÌ °ªÀ» ³ÑÀ¸¸é mysqlÀº ÀÚµ¿À¸·Î µð½ºÅ© ±â¹ÝÀÇ MyISAM Å×À̺í·Î º¯È¯ÇÑ´Ù.
¸Å¿ì º¹ÀâÇÑ group by ÁúÀǸ¦ »ç¿ëÇÏ°í ¸Þ¸ð¸®°¡ ºÎÁ·ÇÑ °æ¿ì °ªÀ» ´Ã¸°´Ù.
¤· wait_timeout : ¿¬°áÀ» ²÷±âÀü ¼­¹ö¿¡¼­ ´ë±âÇÏ´Â ½Ã°£ (ÃÊ)
 
 
À§ÀÇ ¿É¼ÇÀº ½ÇÁ¦ ¼­¹ö¸¦ °è¼Ó ÁÖ±âÀûÀ¸·Î ¸ð´ÏÅ͸µÇϸ鼭 ÀûÀýÇÑ °ªÀ¸·Î º¯°æÀ» ÇÏ¿©¾ß ÇÑ´Ù. 

 

ÇöÀç ¿î¿µµÇ°í ÀÖ´Â ¼­¹ö¿¡ ´ëÇÑ Åë°è Á¤º¸´Â ¾Æ·¡ ¸í·ÉÀ» ÅëÇØ È®ÀÎÇÒ ¼ö ÀÖ´Ù.

 

# mysqladmin status

Uptime: 562721  Threads: 1  Questions: 3581473  Slow queries: 502  Opens: 1472301  Flush tables: 1  Open tables: 8 Queries per second avg: 6.365

 

 

ÀÌ °æ¿ì¿¡´Â °£´ÜÇÑ ¿ä¾àÁ¤º¸¸¸ ³ª¿À¸ç »ó¼¼ÇÑ Á¤º¸´Â extended-status ¿É¼ÇÀ» ÀÌ¿ëÇÏ¸é µÈ´Ù.

 

¸®½ºÆ® 2. mysql ¼­¹ö »óź¸±â

 

# mysqladmin  extended-status

+--------------------------+----------+

| Variable_name            | Value    |

+--------------------------+----------+

| Aborted_clients          | 0        |

| Aborted_connects         | 0        |

| Bytes_received           | 2038376  |

| Bytes_sent               | 99190670 |

| Connections              | 3946     |

| Created_tmp_disk_tables  | 119      |

| Created_tmp_tables       | 551      |

| Created_tmp_files        | 0        |

| Delayed_insert_threads   | 0        |

| Delayed_writes           | 0        |

| Delayed_errors           | 0        |

| Flush_commands           | 2        |

| Handler_delete           | 0        |

| Handler_read_first       | 225      |

| Handler_read_key         | 1079509  |

| Handler_read_next        | 1710340  |

| Handler_read_prev        | 56124    |

| Handler_read_rnd         | 865824   |

| Handler_read_rnd_next    | 2682384  |

| Handler_update           | 193      |

| Handler_write            | 112561   |

| Key_blocks_used          | 1443     |

| Key_read_requests        | 2472836  |

| Key_reads                | 1441     |

| Key_write_requests       | 243      |

| Key_writes               | 215      |

| Max_used_connections     | 9        |

| Not_flushed_key_blocks   | 0        |

| Not_flushed_delayed_rows | 0        |

| Open_tables              | 111      |

| Open_files               | 217      |

| Open_streams             | 0        |

| Opened_tables            | 171      |

| Questions                | 17780    |

| Select_full_join         | 119      |

| Select_full_range_join   | 0        |

| Select_range             | 596      |

| Select_range_check       | 0        |

| Select_scan              | 4175     |

| Slave_running            | OFF      |

| Slave_open_temp_tables   | 0        |

| Slow_launch_threads      | 0        |

| Slow_queries             | 0        |

| Sort_merge_passes        | 0        |

| Sort_range               | 197      |

| Sort_rows                | 1039365  |

| Sort_scan                | 2652     |

| Table_locks_immediate    | 16315    |

| Table_locks_waited       | 2        |

| Threads_cached           | 6        |

| Threads_created          | 11       |

| Threads_connected        | 2        |

| Threads_running          | 1        |

| Uptime                   | 863      |

+--------------------------+----------+

 

 

±×·¯¸é ÇöÀç Mysql ¼­¹öÀÇ È°µ¿¿¡ ´ëÇÑ »ó¼¼ÇÑ Åë°è Á¤º¸°¡ Ãâ·ÂµÈ´Ù. ÁÖ¿ä ¿É¼ÇÀ» »ìÆ캸°Ú´Ù.

 

¤· Aborted_clients : Ŭ¶óÀ̾ðÆ®¿¡¼­ ¿¬°áÀ» ÀûÀýÇÏ°Ô ´ÝÁö ¸øÇÏ°í Á׾ Ãë¼ÒµÈ ¿¬°á Ƚ¼ö

¤· Aborted_connects : ¿¬°á ½Ãµµ ½ÇÆРȽ¼ö

¤· Connections : mysql ¼­¹ö¿¡ ¿¬°á ½ÃµµÇÑ È½¼ö

¤· Key_blocks_used : Å° ij½¬¿¡¼­ »ç¿ëµÈ ºí¶ô Ƚ¼ö

¤· Key_read_requests : ij½¬¿¡¼­ Å° ºí¶ôÀ» ÀоîµéÀÎ ¿äû Ƚ¼ö

¤· Key_reads : µð½ºÅ©¿¡¼­ ¹°¸®ÀûÀ¸·Î Å° ºí¶ôÀ» ÀоîµéÀΠȽ¼ö

¤· Max_used_connections : ÃÖ´ë µ¿½Ã Á¢¼ÓÀÚ¼ö

¤· Open_tables : ÇöÀç ¿­¸° Å×ÀÌºí ¼ýÀÚ

¤· Open_files : ÇöÀç ¿¬ ÆÄÀÏ ¼ýÀÚ

¤· Opened_tables : ¿­¾ú´ø Å×ÀÌºí ¼ýÀÚ

¤· Select_full_join : À妽º¸¦ »ç¿ëÇÏÁö ¾ÊÀº Á¶ÀÎ

¤· Questions : ¼­¹ö·Î º¸³½ ÁúÀÇ È½¼ö

¤· Slow_queries : long_query_time ÀÌ»ó ³Ñ¾î°£ ÁúÀÇ È½¼ö

¤· Sort_merge_passes : Á¤·ÄÀ» À§ÇØ º´ÇÕÇÑ ¼ýÀÚ

¤· Table_locks_waited : Å×ÀÌºí ¶ôÀ» À§ÇØ ´ë±âÇÑ ½Ã°£

 

 

À§¿¡¼­ ³ª¿Â Åë°è¸¦ °¡Áö°í ¼­¹öÀÇ ¹öÆÛ ¹× ȯ°æº¯¼ö¸¦ ÀûÀýÇÏ°Ô ¼öÁ¤ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.

 

¤· ¿¬°á Ãë¼Ò Ƚ¼ö°¡ ¸¹Àº °æ¿ì ³×Æ®¿öÅ©¿¡ ¹®Á¦°¡ ÀÖÀ» °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î ÀÌ¿¡ ´ëÇÑ Á¡°ËÀÌ ÇÊ¿äÇÏ´Ù.

¤· Key_reads°¡ Å« °æ¿ì´Â À妽º¸¦ ¸Þ¸ð¸®°¡ ¾Æ´Ñ µð½ºÅ©¿¡¼­ °è¼Ó ºÒ·¯¿À°í ÀÖ´Â »óȲÀ̹ǷΠ½Ã½ºÅÛÀÇ ¼º´É¿¡ Å©°Ô ¹®Á¦°¡ µÉ ¼ö ÀÖ°í ÀÌ °æ¿ì¿¡´Â key_buffer_size°¡ ³Ê¹« ÀÛÀº °æ¿ì ¹ß»ýÇÒ ¼ö ÀÖ´Ù. Key_reads/Key_read_request ¸¦ °è»êÇϸé ij½Ã È÷Æ®À²À» °è»êÇÒ ¼ö ÀÖÀ¸¸ç ÀϹÝÀûÀ¸·Î´Â ÀÌ °ªÀÌ 0.01º¸´Ù´Â À۾ƾßÇÑ´Ù. ±×·¸´Ù°í key_buffer_size¸¦ ³Ê¹« Å©°Ô ÀâÀ¸¸é ¸Þ¸ð¸®°¡ ºÎÁ·ÇÏ¿© ÆäÀÌ¡À» ÇÏ°ÔµÇ°í ½Ã½ºÅÛÀÌ ´À·ÁÁú ¼ö ÀÖ´Ù.

¤· Max_used_connections¸¦ ÀÌ¿ëÇÏ¿© ½ÇÁ¦ µ¿½Ã Á¢¼ÓÀÚ¼ö¸¦ ÆÇ´ÜÇÏ¿© µ¿½Ã Á¢¼Ó °¡´ÉÇÑ »ç¿ëÀÚ¸¦ Á¶Á¤ÇÑ´Ù. ÀÌ°æ¿ì µ¿½ÃÁ¢¼ÓÀÚ¼ö¸¦ ¹«ÇÑÁ¤ ´Ã¸®´Â °ÍÀÌ ¾Æ´Ï¶ó ½Ã½ºÅÛÀÇ ÀÚ¿øÀ» °í·ÁÇØ¾ß ÇÑ´Ù.

¤· Opened_tables °¡ Ŭ °æ¿ì¿¡´Â table_cacheÀÇ °ªÀÌ ÀûÀº °æ¿ì°¡ ¿øÀÎÀÏ ¼ö ÀÖÀ¸¹Ç·Î table_cached¸¦ ´Ã·ÁÁÖ¾î¾ßÇÑ´Ù.

¤· Select_full_join´Â À妽º¸¦ »ç¿ëÇÏÁö ¾ÊÀº Á¶ÀÎÀ̹ǷΠÃÖ´ëÇÑ 0¿¡ °¡±õµµ·Ï Á¶Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. Á¶Àο¡¼­ À妽º¸¦ »ç¿ëÇÏ°í ÀÖÁö ¾Ê´Ù¸é Å×ÀÌºí µðÀÚÀÎÀ» º¯°æÇÏ¿© À妽º¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Á¶Á¤ÇØÁÖ¾î¾ß ÇÑ´Ù.

¤· Slow_queries´Â long_query_time¿¡ ÁöÁ¤ÇÑ ½Ã°£º¸´Ù ´õ ¿À·¡ °É¸®´Â ÁúÀÇÀÇ ¼ýÀÚÀ̹ǷΠÁúÀǹ®À» ÃÖÀûÈ­ÇØ¾ß ÇÒ Çʿ伺ÀÌ ÀÖ´Ù. ÀÌ¿¡ ÇØ´çÇÏ´Â ·Î±×¸¸ µû·Î ³²±æ ¼ö°¡ ÀÖÀ¸¹Ç·Î ÇØ´çÇÏ´Â ÁúÀÇ°¡ ¾î¶² °ÍÀÎÁö È®ÀÎÇÒ ¼ö ÀÖ´Ù.

¤· Questions¿Í UptimeÀ» ÀÌ¿ëÇÏ¿© ÃÊ´ç ÁúÀÇ È½¼ö¸¦ »êÃâÇÒ ¼ö ÀÖ´Ù.

¤· Table_locks_waited°¡ ¸Å¿ì Å« °æ¿ì¿¡´Â Å×ÀÌºí ¶ô ¶§¹®¿¡ ±â´Ù¸®´Â ½Ã°£ÀÌ ¸¹´Ù´Â °ÍÀÌ°í ½Ã½ºÅÛÀÇ ¼º´É¿¡ Å« ¿µÇâÀ» ¹ÌÄ¥ °ÍÀÌ´Ù. ¸ÕÀú ÁúÀǸ¦ ÃÖÀûÈ­ÇÏ°í Å×À̺íÀ» ¿©·¯ °³·Î ³ª´©°Å³ª replication ±â´ÉÀ» ÀÌ¿ëÇÏ¿© ÀÛ¾÷À» ºÐ»ê½Ãų ÇÊ¿ä°¡ ÀÖ´Ù.

 

ÀÌ¿Í °ü·ÃÇÏ¿© ¸Þ¸ð¸® ¹× ¼­ºñ½º ±Ô¸ð¿¡ µû¶ó mysql ¹èÆ÷ ÇÁ·Î±×·¥¿¡ my.cnf ¿¹Á¦ ÆÄÀÏÀÌ µé¾îÀÖ´Ù. (my-huge.cnf  my-large.cnf  my-medium.cnf  my-small.cnf µîÀÌ´Ù)

 

ÁÖ·Î ½Ã½ºÅÛÀÇ ¸Þ¸ð¸®¿Í ¿¬°üÀ» Áö¾î ¸Þ¸ð¸® Å©±â¿¡ µû¶ó ±âº»¼³Á¤À» ÇÏ°í ÀÖÀ¸¹Ç·Î °¢ÀÚ ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡¼­ À̸¦ ±âº»À¸·Î ¼öÁ¤Çسª°¡¸é µÈ´Ù. diff µîÀ¸·Î ºñ±³¸¦ Çغ¸¸é ¾Ë°ÚÁö¸¸ ¼º´É°ú °ü·ÃÀÌ ÀÖ´Â º¯¼ö´Â key_buffer, table_cache, sort_buffer, record_buffer µîÀÌ´Ù.

 

ÀÌ¿Ü¿¡µµ ÇöÀç ¼­¹ö¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Â ½º·¹µå¿¡ ´ëÇÑ ¸ð´ÏÅ͸µÀ» ÇÒ ¼ö ÀÖ´Ù. –i ¿É¼ÇÀ» ÀÌÀÌ¿ëÇÏ¸é °°Àº ¸í·ÉÀ» ÁÖ±âÀûÀ¸·Î °»½ÅÇϸ鼭 È®ÀÎÇÒ ¼ö ÀÖ´Ù. –r ¿É¼ÇÀ» ÀÌ¿ëÇϸé Á¤º¸¸¦ °»½ÅÇÏ¿´À» °æ¿ì Â÷ÀÌÁ¡¸¸À» º¸¿©ÁØ´Ù.

 

 

¸®½ºÆ® 3. ÇÁ·Î¼¼½º ¸ð´ÏÅ͸µÇϱâ

 

# mysqladmin -i3 processlist

+------+------+-----------+-------+---------+------+-------+------------------+

| Id   | User | Host      | db    | Command | Time | State | Info             |

+------+------+-----------+-------+---------+------+-------+------------------+

| 4225 | root | localhost | board | Sleep   | 1    |       |                  |

| 4226 | root | localhost |       | Query   | 0    |       | show processlist |

+------+------+-----------+-------+---------+------+-------+------------------+

 

+------+------+-----------+-------+---------+------+-------+------------------+

| Id   | User | Host      | db    | Command | Time | State | Info             |

+------+------+-----------+-------+---------+------+-------+------------------+

| 4225 | root | localhost | board | Sleep   | 4    |       |                  |

| 4226 | root | localhost |       | Query   | 0    |       | show processlist |

+------+------+-----------+-------+---------+------+-------+------------------+

 

 

 

5. ¸¶Ä¡¸ç

Mysql Æ©´×ÀÇ °æ¿ì SQL/DB±¸Á¶ ¼³°è/¼­¹ö ¼¼ÆÃÀ¸·Î ³ª´­ ¼ö ÀÖ´Ù°í ÇÏ¿´´Âµ¥ À§¿¡¼­´Â ±×Áß ¼­¹ö ¼¼Æà ÀϺκп¡ ´ëÇؼ­¸¸ »ìÆ캸¾Ò´Ù. ½ÇÁ¦·Î ¼¼ºÎÀûÀ¸·Î µé¾î°¡¸é ¿©·¯°¡Áö °í·ÁÇÒ Á¡µéÀÌ ¸¹Áö¸¸ À̹ø °­Á¿¡¼­´Â Àü¹ÝÀûÀÎ Å« È帧¿¡ ´ëÇؼ­ »ìÆ캸¾Ò´Ù. ¿ì¸®°¡ ÀÌÀü °­Á¿¡¼­µµ ¸ÕÀú ½Ã½ºÅÛÀ» ¸ð´ÏÅ͸µÇÏ°í ³ª¼­ Æ©´×ÀÛ¾÷À» ÁøÇàÇÏ¿´´Ù. ÀÌ°ÍÀº µ¥ÀÌÅͺ£À̽º¿¡µµ ¸¶Âù°¡ÁöÀÌ´Ù. SQL¹®ÀÇ °æ¿ì EXPLAIN À̶ó´Â ¸í·ÉÀ» ÅëÇÏ¿© ½ÇÁ¦·Î ÁúÀǹ®ÀÌ ¾î¶»°Ô ½ÇÇàµÇ°í À妽º°¡ »ç¿ëµÇ´ÂÁö, SQL¹®ÀÌ ÀûÀýÇÏ°Ô »ç¿ëµÇ°í ÀÖ´ÂÁö¸¦ È®ÀÎÇؾßÇÏ°í ¼­¹ö¸¦ Æ©´×ÇÒ °æ¿ì mysqladmin µîÀÇ ¸ð´ÏÅ͸µ ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© ÇöÀç ¼­¹öÀÇ »óÅ°¡ ¾î¶»°í ¾î¶»°Ô ÀÛµ¿ÇÏ°í ÀÖ´ÂÁö¸¦ ¾Ë°í ÀÖ¾î¾ßÇÑ´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À» ¸ÕÀú ¼öÇàÇÏ°í³ª¼­ Æ©´×ÀÛ¾÷ÀÌ ÁøÇàµÉ ¼ö ÀÖ´Ù. Mysql¿¡¼­ I/OºÐ»êÀ» À§ÇØ replicationÀ» »ç¿ëÇϰųª UDF¸¦ ÀÌ¿ëÇÏ¿© »ç¿ëÀÚ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ¿© ºÎÇϸ¦ ÁÙÀÌ´Â µîÀÇ ÀÛ¾÷Àº ±× ÀÌÈÄ¿¡ ÁøÇàµÉ ºÎºÐµéÀÌ´Ù.

 

¾î´ÀÁ¤µµ À§¿¡¼­ ÁöÀûÀ» ÇÑ´ë·Î ¾ÆÁ÷±îÁö Çѱ۷ΠµÈ Mysql Á¤º¸°¡ ¸¹Àº °ÍÀº ¾Æ´Ï¸ç °¡Àå Á¤¸®°¡ Àß µÇ¾î ÀÖ´Â °ÍÀº Mysql »çÀÌÆ®¿¡¼­ ¹ÞÀ» ¼ö ÀÖ´Â ¿µ¹® ¸Å´º¾óÀÌ´Ù. ¿µ¹® ¸Å´º¾óÀÇ °æ¿ì ÃÖÀûÈ­ °ü·ÃÇÑ ºÎºÐÀÇ °æ¿ìµµ Á¤¸®°¡ ¾ÆÁÖ Àß µÇ¾îÀÖ´Ù. Mysql ÇÁ·Î±×·¥Àº ¼Ò½º°¡ °ø°³µÇ¾îÀÖ°í ¾ÆÁÖ È°¹ßÇÏ°Ô ¾÷±×·¹À̵尡 µÇ¾î¼­ °è¼Ó »õ·Î¿î ±â´ÉÀÌ Ãß°¡µÇ°í ÀÖ°í ±×¿¡ µû¶ó ¸Å´º¾óµµ ÀÚÁÖ °»½ÅÀÌ µÇ´Â ÆíÀÌ´Ù. ¸¶Áö¸·À¸·Î °­Á¶ÇÏ°í ½ÍÀº °ÍÀº óÀ½¿¡ ÁöÀûÇß´ø ´ë·Î ¾î¶°ÇÑ µ¥ÀÌÅͺ£À̽º¸¦ °¡Áö°í ÀÛ¾÷À» ÇϵçÁö óÀ½ µðÀÚÀÎ ÀÛ¾÷ÀÌ °¡Àå Áß¿äÇÏ´Ù´Â °ÍÀÌ´Ù. Mysql Æ©´×°ú °ü·ÃÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ¾Æ·¡ Âü°íÀڷḦ ÀÌ¿ëÇϱ⠹ٶõ´Ù.

 

 

 

 

## Âü°íÀÚ·á

1.          http://www.mysql.com

2.          mysql ¸Å´º¾ó ¹ø¿ªº»(¹®ÅÂÁØ) : http://tunelinux.pe.kr/mysql/manual/ ¹ø¿ªÀÛ¾÷Àº 1999³âÃÊ¿¡ µÈ °ÍÀÌ¸ç  10ÀåÀÌ Æ©´×°ú °ü°èÀÖ´Ù

3.          ¾ÆÁÖ Æ¯º°ÇÑ À¥µ¥ÀÌÅͺ£À̽º MySQL & Web DB ¿¬µ¿ : ÇãÁ¤¼ö Àú. º£½ºÆ®ºÏ Ãâ°£

4.          MySQL Advanced Class : ÇãÁ¤¼ö Àú. º£½ºÆ®ºÏ Ãâ°£

5.          mysql ÃÖÀûÈ­ ¹®¼­ :   http://database.sarang.net/database/mysql/tuning/optimize_mysql.html (ÃÖ¿µºÀ´Ô ¹ø¿ª)

6.          http://database.sarang.net

7.          Oracle8i Tuning Release 8.1.5 : ¿À¶óŬ»ç ¸Å´º¾ó

8.          Oracle Bible Ver.8.x 9Àå ¿À¶óŬ Æ©´×: È«ÁØÈ£¿Ü Àú. ¢ß¿µÁøÃâÆÇ»ç Ãâ°£

9.          µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ : ¹Ú¼®¿ª. È«¸ª°úÇÐÃâÆÇ»ç Ãâ°£

10.      http://kldp.org/KoreanDoc/mSQL.zip : ±è¿µ¹Î. DBÀü¹Ý¿¡ °­Á ¹× msql ¼³¸í