¸®´ª½º ½Ã½ºÅÛ ÃÖÀûÈ Æ©´×(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
(ÃÖ¿µºÀ´Ô ¹ø¿ª) 7.
Oracle8i
Tuning Release 8.1.5 : ¿À¶óŬ»ç ¸Å´º¾ó 8.
Oracle Bible
Ver.8.x 9Àå ¿À¶óŬ Æ©´×: È«ÁØÈ£¿Ü Àú. ¢ß¿µÁøÃâÆÇ»ç Ãâ°£ 9.
µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ : ¹Ú¼®¿ª. È«¸ª°úÇÐÃâÆÇ»ç Ãâ°£ 10.
http://kldp.org/KoreanDoc/mSQL.zip
: ±è¿µ¹Î. DBÀü¹Ý¿¡ °Á ¹× msql ¼³¸í |