mysql Æ©´×¹æ¹ý
±Û   ¾´   ÀÌ linux
³¯         Â¥ 2004³â 03¿ù 25ÀÏ 00½Ã 13ºÐ 58ÃÊ
º»         ¹® 1. °¡´ÉÇϸé Áö¼Ó ¿¬°áÀ» »ç¿ëÇϰųª ¿¬°á Ç®À» »ç¿ëÇ϶ó

µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇϰųª ¿¬°áÀ» ÇØÁ¦ÇÒ ¶§¿¡µµ ¿À¹öÇìµå°¡ ¹ß»ýÇÑ´Ù. ¿¬°á ¹× ¿¬°áÇØÁ¦ °³³äÀº 8Àå¿¡¼­ ÁÖ·Î ´Ù·ç°í, °¢ ¾ð¾î(ÆÞ, ÆÄÀ̽ã, C, ÀÚ¹Ù/JDBC)º° ¿¬°á ¹× ¿¬°á ÇØÁ¦¹æ¹ýÀº ÇØ´ç ¾ð¾î¿¡ ´ëÇÑ Àå¿¡¼­ º°µµ·Î ´Ù·é´Ù. ÀÏ´Ü ±âº»ÀûÀÎ ¾ÆÀ̵ð¾î´Â ¿¬°á°ú ¿¬°á ²÷±â ȸ¼ö¸¦ ÁÙ¿©º¸ÀÚ´Â °ÍÀÌ´Ù. ƯÈ÷ ÆäÀÌÁö¿¡ ´ëÇÑ ¿äûÀÌ µé¾î¿Ã ¶§¸¶´Ù CGI³ª PHP ½ºÅ©¸³Æ®¿¡¼­ ±× ÆäÀÌÁö¿Í °ü·ÃµÈ Á¤º¸¸¦ ºÒ·¯¿À±â À§ÇØ µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇØ¾ß ÇÏ´Â À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â ÀÌ·¯ÇÑ ¹®Á¦°¡ ¸Å¿ì Áß¿äÇÏ´Ù. Áö¼Ó ¿¬°á(persistent connection)À̳ª ¿¬°á Ç®(connection pool)À» »ç¿ëÇÏ¸é ¿¬°á ¹× ¿¬°áÇØÁ¦ °úÁ¤¿¡¼­ »ý±â´Â ¿À¹öÇìµå¸¦ ÁÙ¿©¼­ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ¿¬°á Ç®À̳ª Áö¼Ó ¿¬°áÀ» ³Ê¹« ¸¹ÀÌ »ç¿ëÇϸé MySQL ¼­¹ö¿¡¼­ ½Ã½ºÅÛ ÀÚ¿øÀ» ³Ê¹« ¸¹ÀÌ Àâ¾Æ ¸Ô±â ¶§¹®¿¡ ´Ù¸¥ ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼öµµ ÀÖ´Ù.

¿¬°á Ç®°ú Áö¼Ó¿¬°áÀº °¢ ¾ð¾î¿¡ µû¶ó ´Ù¸¥ ¹æ½ÄÀ¸·Î ó¸®ÇÑ´Ù. ¿¹¸¦ µé¾î PHP¿¡¼­´Â mysql_pconnect() ÇÔ¼ö·Î Áö¼Ó ¿¬°áÀ» ÇÒ ¼ö ÀÖ´Ù

2. À妽º¸¦ »ç¿ëÇ϶ó

µ¥ÀÌÅͺ£À̽º¿¡ ÀÖ´Â µ¥ÀÌÅÍ´Â µð½ºÅ©¿¡ ÀúÁ¤µÈ´Ù. µ¥ÀÌÅ͸¦ ÀÐ°í °»½ÅÇÏ´Â ÀÛ¾÷Àº °á±¹ µð½ºÅ© ÀÔ/Ãâ·Â ÀÛ¾÷ÀÌ´Ù. SQL ÁúÀÇ Æ©´×ÀÇ ¸ñÀûÀº ÀÔ/Ãâ·Â ȸ¼ö¸¦ ÃÖ¼ÒÈ­ÇÏ´Â °ÍÀÌ´Ù. ÁúÀǸ¦ Æ©´×ÇÒ ¶§ ¾²ÀÌ´Â ÁÖ¹«±â´Â ¹Ù·Î À妽ºÀÌ´Ù.


3. EXPLAIN À» »ç¿ëÇÏ¿© index¸¦ ¸¸µéÀÚ.

Ķ¸®Æ÷´Ï¾ÆÁÖ(ÁÖ¸¦ ³ªÅ¸³»´Â ¾à¾î°¡ CA)ÀÇ À̸§À» ±¸ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.

SELECT state_name FROM State WHERE state_cd = 'CA';


EXPLAIN SELECT¸¦ ½ÇÇà½ÃŲ¸é ÁúÀÇ°¡ ¾î¶»°Ô ½ÇÇàµÇ´ÂÁö ¾Ë ¼ö ÀÖ´Ù:

mysql> EXPLAIN SELECT state_name FROM State where state_cd = 'CA';

+--------------------------------------------------------------------------+
| table | type | possible_keys | Key | key_len | ref | rows | Extra |
+--------------------------------------------------------------------------+
| state | ALL | NULL | NULL | NULL | NULL | 50 | where used |
+--------------------------------------------------------------------------+
1 row in set (0.00 sec)



WHERE Àý¿¡¼­ state_cd¸¦ »ç¿ëÇϹǷΠ±× ¿­¿¡ ´ëÇØ À妽º¸¦ ¸¸µé°í EXPLAIN_SELECT¸¦ ´Ù½Ã ½ÇÇà½ÃÄѺ¸ÀÚ:

mysql> CREATE INDEX st_idx ON State (state_cd);
.
.
mysql> EXPLAIN SELECT state_name FROM State WHERE state_cd = 'CA';

+-----------------------------------------------------------------------------+
| table | type | possible_keys | Key | key_len | ref | rows | Extra |
+-----------------------------------------------------------------------------+
| state | ALL | st_idx | st_idx | 2 | const | 1 | where used |
+-----------------------------------------------------------------------------+

1 row in set (0.00 sec)

key ¿­À» º¸¸é MySQL¿¡¼­ »õ·Î ¸¸µç À妽º¸¦ »ç¿ëÇÏ°í ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. °á°úÀûÀ¸·Î ó¸®ÇØ¾ß ÇÒ ÇàÀÇ °³¼ö°¡ 50°³¿¡¼­ ÇÑ °³·Î ÁÙ¾îµé¾ú´Ù.


4. mysqlÀÇ º¯¼ö¸¦ Á¶ÀýÇ϶ó

ÀϹÝÀûÀ¸·Î MySQLÀ» Æ©´×ÇÒ ¶§¿¡´Â ´ÙÀ½ µÎ º¯¼ö°¡ °¡Àå Áß¿äÇÏ´Ù.

table_cache

table_cache´Â MySQL Å×À̺í ij½ÃÀÇ Å©±â¸¦ Á¶ÀýÇÏ´Â º¯¼öÀÌ´Ù. ÀÌ °ªÀ» Å°¿ì¸é ¸Å¹ø ÆÄÀÏÀ» ¿­°Å³ª ´ÝÀ» ÇÊ¿ä ¾øÀÌ µ¿½Ã¿¡ ´õ ¸¹Àº Å×À̺íÀ» ¿­¾îµÎ ¼ö ÀÖ´Ù.

key_buffer_size

key_buffer_size´Â À妽º¸¦ ´ã¾ÆµÎ´Â ¹öÆÛÀÇ Å©±â¸¦ Á¶ÀýÇÏ´Â º¯¼ö´Ù. ÀÌ °ªÀ» Å°¿ì¸é À妽º »ý¼º ¹× ¼öÁ¤ ¼º´ÉÀÌ Çâ»óµÇ°í, ´õ ¸¹Àº À妽º °ªÀ» ¸Þ¸ð¸®¿¡ ÀúÀåÇÒ ¼ö ÀÖ´Ù.

5. ¿î¿µÃ¼Á¦/Çϵå¿þ¾î Æ©´×

Çϵå¿þ¾î ¹× OS Æ©´×¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ÀÌ Ã¥ÀÇ ¹üÀ§¸¦ ¹þ¾î³­´Ù. ÇÏÁö¸¸ ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº Á¡À» °í·ÁÇØ¾ß ÇÑ´Ù.

ÀϹÝÀûÀÎ Çϵå¿þ¾î ¾÷±×·¹À̵带 ÅëÇØ MySQLÀÇ ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ½Ã½ºÅÛ¿¡ ¸Þ¸ð¸®¸¦ Ãß°¡Çϸé MySQL ij½Ã ¹× ¹öÆÛ¿¡ ´õ ¸¹Àº ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ ¼ö ÀÖ´Ù. ´õ ºü¸¥ µð½ºÅ©¸¦ »ç¿ëÇϸé I/O ¼Óµµ·Î »¡¶óÁø´Ù.
Å×ÀÌÅͺ£À̽º¸¦ ¿©·¯ °³ÀÇ ¹°¸®Àû ±â±â¿¡ ºÐ»ê½ÃÅ°´Â °Íµµ µµ¿òÀÌ µÈ´Ù. ¿¹¸¦ µé¾î, Å×ÀÌÅÍ ÆÄÀÏ°ú À妽º ÆÄÀÏÀ» ¼­·Î ´Ù¸¥ µð½ºÅ©¿¡ ÀúÀåÇÏ¸é ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù.
Á¤Àû ÀÌÁø ÆÄÀÏÀÌ µ¿Àû ÀÌÁø ÆÄÀϺ¸´Ù ºü¸£´Ù. MySQLÀ» ¸¸µé¶§ µ¿ÀûÀ¸·Î ¸µÅ©ÇÏÁö ¾Ê°í Á¤ÀûÀ¸·Î ¸µÅ©Çϵµ·Ï ¼³Á¤ÇÏ¸é ¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù.


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

¤· 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 ¿É¼ÇÀ» ÀÌ¿ëÇϸé Á¤º¸¸¦ °»½ÅÇÏ¿´À» °æ¿ì Â÷ÀÌÁ¡¸¸À» º¸¿©ÁØ´Ù.





°ü·Ã °Ô½Ã¹° : 1 (Total 1 Articles)
¹ø È£ Á¦ ¸ñ ±Û¾´ÀÌ ÀÛ¼ºÀÏ Á¶È¸¼ö ¼± ÅÃ
1  mysql Æ©´×¹æ¹ý linux04-03-25497