MySQLÀ» À§ÇÑ Çϵå¿þ¾î ÃÖÀûÈ
|
-
Å« Å×À̺í(2G°¡ ³Ñ´Â)ÀÌ ÇÊ¿äÇÏ´Ù¸é, ¾ËÆijª ½ºÆÅ ¶Ç´Â IA64
µîÀÇ 64bit Çϵå¿þ¾î¸¦ °í·ÁÇØ º¸´Â °Ô ÁÁ´Ù. MySQLÀº ³»ºÎÀûÀ¸·Î 64bit Á¤¼ö¸¦
¸¹ÀÌ »ç¿ëÇÏ°í ÀÖÀ¸¹Ç·Î, 64bit CPU¸¦ »ç¿ëÇϸé Á»´õ ³ªÀº ÆÛÆ÷¸Õ½º¸¦ ±â´ëÇÒ
¼ö ÀÖ´Ù.
-
°Å´ëÇÑ µ¥ÀÌÅͺ£À̽º¸¦ À§ÇÑ ÃÖÀûÈ´Â º¸Åë ·¥, ºü¸¥ µð½ºÅ©,
CPU ¼øÀ¸·Î ÁøÇàµÈ´Ù.
-
´õ ¸¹Àº ·¥Àº »ç¿ëµÇ´Â ´ëºÎºÐÀÇ key ÆäÀÌÁöµéÀ» ·¥¿¡ º¸°üÇÔÀ¸·Î½á
ºü¸¥ key °»½ÅÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù.
-
¾ÈÀüÇÑ Æ®·£Àè¼ÇÀ» »ç¿ëÇÏÁö ¾Ê°Å³ª Å« µð½ºÅ©¸¦ »ç¿ëÇÏ°í
ÆÄÀÏ °Ë»ç¸¦ ¿À·§µ¿¾È ÇÏ´Â ÀÏÀ» ÇÇÇÏ°í ½Í´Ù¸é UPS¸¦ »ç¿ëÇÏ¿© Àü¿ø ¿À·ù°¡
¹ß»ýÇÑ °æ¿ì¿¡µµ ½Ã½ºÅÛÀ» ¾ÈÀüÇÏ°Ô Á¾·á½Ãų ¼ö ÀÖµµ·Ï ÇÏ´Â °Íµµ ÁÁÀº »ý°¢ÀÌ´Ù.
-
ÇϳªÀÇ Àü¿ë µ¥ÀÌÅͺ£À̽º ¼¹ö¸¦ °¡Áø ½Ã½ºÅÛÀ̶ó¸é 1G
ÀÌ´õ³ÝÀ» °í·ÁÇØ º¼ ÇÊ¿ä°¡ ÀÖ´Ù. ³×Æ®¿öÅ© Áö¿¬Àº 󸮴ɷ¸¸Å Áß¿äÇÏ´Ù.(Latency
is as important as throughput.)
|
µð½ºÅ© ÃÖÀûÈ
|
-
½Ã½ºÅÛ, ÇÁ·Î±×·¥, Àӽà ÆÄÀϵéÀ» À§ÇÑ Àü¿ë µð½ºÅ©¸¦ °®Ãç¶ó.
(³»¿ëÀÌ) ÀÚÁÖ º¯°æµÇ´Â °æ¿ì¶ó¸é °»½Å ±â·Ï°ú Æ®·£Àè¼Ç ±â·Ï ÆÄÀÏÀ» º°µµÀÇ
µð½ºÅ©¿¡ ¹èÄ¡ÇÑ´Ù.
-
µ¥ÀÌÅͺ£À̽º µð½ºÅ©¿¡ À־ ºü¸¥ Ž»ö ½Ã°£(seek time)ÀÌ
¿ä°ÇÀÌ´Ù. Å« Å×ÀÌºí¿¡¼ ÇϳªÀÇ ·¹Äڵ带 ã±â À§ÇØ ¼Ò¿äµÇ´Â Ž»ö Ƚ¼ö´Â
´ÙÀ½°ú °°ÀÌ ÃßÁ¤ÇØ º¼ ¼ö ÀÖ´Ù.
log(row_count) / log(index_block_length/3*2/(key_length
+ data_ptr_length))+1
¿¹¸¦ µé¾î, 500,000°³ÀÇ ·¹Äڵ带 °¡Áö°í ÀÖ°í medium
int Çü Çʵå·Î À妽ÌÇÏ°í ÀÖ´Â Å×À̺íÀÇ °æ¿ì¶ó¸é log(500000) / log(1024/3*2/(3+4))+1
= 4 ¹øÀÇ Å½»öÀÌ ÇÊ¿äÇÏ´Ù. ¿©±â¼ À妽º´Â 500,000 * 7 * 3/2 = 5.2M Á¤µµÀÇ
Å©±â°¡ µÉ °ÍÀÌ´Ù. ½ÇÁ¦·Î´Â ´ëºÎºÐÀÇ ºí·ÏµéÀÌ ¹öÆÛ¿¡ ÀúÀåµÇ¹Ç·Î ¾Æ¸¶µµ 1~2¹ø
Á¤µµÀÇ Å½»öÀÌ ÇÊ¿äÇÏ°Ô µÈ´Ù.
-
¾²±âÀÇ °æ¿ì »õ·Î¿î Å°¸¦ ³ÖÀ» À§Ä¡¸¦ ã±â À§ÇØ À§¿¡¼Ã³·³
4¹øÀÇ Å½»öÀÌ ÇÊ¿äÇÏÁö¸¸, Åë»óÀûÀ¸·Î À妽º¸¦ °»½ÅÇϱâ À§ÇØ 2¹øÀÇ Å½»öÀÌ
´õ ÇÊ¿äÇÏ´Ù.
-
¸Å¿ì Å« µ¥ÀÌÅͺ£À̽º¿¡ °æ¿ì, µð½ºÅ© Ž»ö ¼Óµµ¿¡ÀÇÇØ ¼º´ÉÀÌ
Á¿ìµÇ´Âµ¥, Ž»ö ¼ö´Â ´õ ¸¹Àº µ¥ÀÌÅ͸¦ ¾òÀ» ¶§¸¶´Ù N log N ¾¿ Áõ°¡ÇÑ´Ù.
-
µ¥ÀÌÅͺ£À̽ºµé°ú Å×À̺íµéÀ» ´Ù¸¥ µð½ºÅ©µé¿¡ ºÐÇÒÇØ ³Ö¾î¶ó.
MySQL¿¡¼´Â À̸¦ À§ÇØ ½Éº¼¸¯ ¸µÅ©¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
-
Striping disks(RAID 0¿Í °°Àº)´Â Àбâ¿Í ¾²±â ¾ç¸é¿¡¼
󸮴ɷÂÀ» Áõ°¡½ÃŲ´Ù.
-
¹Ì·¯¸µÀ» µ¿¹ÝÇÏ´Â Striping disk(RAID 0+1)´Â Àбâ/¾²±â
¼º´ÉÀ» Çâ»ó½ÃÅ°°í ¾ÈÀü¼ºÀ» Á¦°øÇÑ´Ù. ¾²±â´Â ¾à°£ ´À¸®´Ù.
-
ÀÓ½ÃÆÄÀÏ ¶Ç´Â ½±°Ô °»½ÅµÉ ¼öµµ ÀÖ´Â µ¥ÀÌÅÍ¿¡ ´ëÇؼ ¹Ì·¯¸µÀ̳ª
RAID(RAID 0´Â ¿¹¿Ü)¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
-
Linux¸¦ »ç¿ëÇÑ´Ù¸é ºÎÆÃÇÒ ¶§ hdparm -m16 -d1 ¸í·ÉÀ» µð½ºÅ©¿¡
Àû¿ëÇÏ¿© ´ÙÁß ¼½ÅÍ Àбâ/¾²±â¿Í DMA »ç¿ëÀÌ °¡´ÉÇϵµ·Ï ÇÑ´Ù. ÀÌ´Â ¹ÝÀÀ ½Ã°£À»
5~50%±îÁö Áõ°¡½ÃŲ´Ù.
-
Linux¸¦ »ç¿ëÇÑ´Ù¸é µð½ºÅ©¸¦ ¸¶¿îÆ®ÇÒ ¶§ async(±âº»°ªÀÌ´Ù)¿Í
noatime ¿É¼ÇÀ» ºÎ¿©ÇÏ¿© ¸¶¿îÆ®ÇÑ´Ù.
-
ÀϺΠƯÁ¤ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °æ¿ì ¾ÆÁÖ Æ¯¼öÇÑ Å×À̺íÀ» ·¥µð½ºÅ©¿¡
ÀúÀåÇÏ´Â °Íµµ ÇÑ ¹æ¹ýÀÌ µÈ´Ù. ±×·¯³ª º¸ÅëÀº ÇÊ¿ä ¾ø´Ù.
|
¿î¿µÃ¼Á¦ ÃÖÀûÈ
|
-
½º¿ÒÀ» Á¦°ÅÇÑ´Ù. ¸Þ¸ð¸® ¹®Á¦°¡ ÀÖ´Ù¸é ½Ã½ºÅÛÀÌ ÀûÀº
¸Þ¸ð¸®¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤Çϱ⠺¸´Ù´Â ¸Þ¸ð¸®¸¦ Áõ¼³ÇÏ´Â °ÍÀÌ ÁÁ´Ù.
-
µ¥ÀÌÅÍ¿¡ ´ëÇؼ NFS µð½ºÅ©¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
(NFS locking ¹®Á¦¿¡ ºÀÂøÇÒ ¼ö ÀÖ´Ù.)
-
½Ã½ºÅÛ°ú SQL ¼¹ö¸¦ À§ÇØ open file ÇÑ°è ¼öÄ¡¸¦ Áõ°¡½ÃŲ´Ù. (safe_mysql ½ºÅ©¸³Æ®¿¡ ulimit -n #À» Ãß°¡ÇÑ´Ù.)
-
ÇÁ·Î¼¼½º¿Í ¾²·¹µåÀÇ °³¼ö Á¦ÇÑÀ» ´Ã·ÁÁØ´Ù.
-
»ó´ëÀûÀ¸·Î Å« Å×À̺íÀ» »ç¿ëÇÒ ÀÏÀÌ µå¹°´Ù¸é, ÆÄÀϽýºÅÛÀÌ
ÆÄÀÏÀ» ¿©·¯ ½Ç¸°´õ¿¡ ºÐ»ê½ÃÄÑ ÀúÀåÇÏÁö ¾Êµµ·Ï ¼³Á¤ÇÑ´Ù.(¼Ö¶ó¸®½º)
-
Å« ÆÄÀÏÀ» Áö¿øÇÏ´Â ÆÄÀϽýºÅÛÀ» »ç¿ëÇÑ´Ù.(¼Ö¶ó¸®½º)
-
¾î¶² ÆÄÀϽýºÅÛÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁÀ»Áö ¼±ÅÃÇÑ´Ù. ¸®´ª½ºÀÇ
Reiserfs ´Â ÆÄÀÏ ¿±â, Àбâ, ¾²±â¿¡ ÀÖ¾î¼ (ext2º¸´Ù) ºü¸£´Ù. ÆÄÀÏ °Ë»çµµ
´ÜÁö ¼ö ÃÊ ¹Û¿¡ ¾È °É¸°´Ù.
|
API ¼±ÅÃ
|
-
PERL
-
OS ¿Í µ¥ÀÌÅͺ£À̽ºµé°£ÀÇ À̽ļº ¿ì¼öÇÏ´Ù.
-
ºü¸¥ ÇÁ·ÎÅäŸÀÌÇο¡ ÀûÇÕÇÏ´Ù.
-
DBI/DBD ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °Íµµ ÇÑ ¹æ¹ýÀÌ´Ù.
-
PHP
-
PERL º¸´Ù ÀÍÈ÷±â ½¬¿î ¾ð¾î´Ù.
-
PERL º¸´Ù ÀÚ¿øÀ» Àû°Ô »ç¿ë. ¶§¹®¿¡ À¥¼¹ö¿¡ ³»Àå½ÃÅ°±â¿¡
ÁÁ´Ù.
-
PHP4·Î ¾÷±×·¹À̵åÇÏ¿© ´õ ³ªÀº ¼Óµµ¸¦ ¾ò´Â °Íµµ ÇÑ ¹æÆíÀÌ´Ù.
-
C
-
MySQL º»·¡ÀÇ ÀÎÅÍÆäÀ̽ºÀÌ´Ù.
-
´õ ºü¸£°í ´õ ¸¹Àº Á¦¾î°¡ °¡´ÉÇÏ´Ù.
-
Àú ¼öÁØ. ¶§¹®¿¡ (ÇÁ·Î±×·¡¸Ó°¡) ´õ ¸¹Àº ÀÏÀ» ÇØ¾ß ÇÑ´Ù.
-
C++
-
°í ¼öÁØ. ÄÚµù¿¡ ´õ ¸¹Àº ½Ã°£ÀÌ ÇÊ¿äÇÏ´Ù.
-
(MySQL C++ API´Â) ¿©ÀüÈ÷ °³¹ß ´Ü°è¿¡ ÀÖ´Ù.
-
ODBC
-
À©µµ¿ìÁî¿Í À¯´Ð½º¿¡¼ µ¿ÀÛÇÑ´Ù.
-
°ÅÀÇ ´ëºÎºÐÀÇ ´Ù¸¥ SQL ¼¹ö·Î ÀÌ½Ä °¡´ÉÇÏ´Ù.
-
´À¸®´Ù. MyODBC´Â ´Ü¼øÇÑ pass-through µå¶óÀ̹öÀÌÁö¸¸ º»¿¬ÀÇ
ÀÎÅÍÆäÀ̽º¿¡ ºñÇØ 19% Á¤µµ ´À¸®´Ù.
-
°°Àº ÀÏÀ» ¼öÇàÇÏ´Â ¸¹Àº ´Ù¸¥ µµ±¸µéÀÌ ÀÖ´Ù. ÀÛ¾÷À» ¾î·Æ°Ô
ÇÏ´Â ÇÑ °¡Áö´Â ¸¹Àº ODBC µå¶óÀ̹öµéÀÌ Á¦°¢±â ´Ù¸¥ ºÎºÐ¿¡¼ »óÀÌÇÑ ¹ö±×µéÀ»
°¡Áö°í ÀÖ´Ù´Â Á¡ÀÌ´Ù.
-
¹®Á¦ ¹ß»ý ¼ÒÁö°¡ ¸¹´Ù. ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®´Â Á¤±âÀûÀ¸·Î ÀÎÅÍÆäÀ̽º¸¦
º¯°æÇÑ´Ù.
-
¹Ì·¡°¡ ºÒÈ®½ÇÇÏ´Ù.(¸¶ÀÌÅ©·Î¼ÒÇÁÆ®´Â ODBCº¸´Ù OLE ÂÊ¿¡
´õ ¸¹Àº ºñÁßÀ» µÎ°í ÀÖ´Ù.)
-
JDBC
-
ÀÌ·ÐÀûÀ¸·Î OS, µ¥ÀÌÅͺ£À̽º °£ÀÇ À̽ļºÀÌ ¿ì¼öÇÏ´Ù.
-
(ºê¶ó¿ìÀú¿Í °°Àº)À¥ Ŭ¶óÀ̾ðÆ® »ó¿¡¼ µ¿ÀÛÇÒ ¼ö ÀÖ´Ù.
-
Python + others
-
ÁÁÀ» °ÍÀÌ´Ù. ±×·¯³ª ¿ì¸®´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù.
|
ÀÀ¿ëÇÁ·Î±×·¥ ÃÖÀûÈ
|
-
¿ì¼±Àº ¹®Á¦ ÇØ°á¿¡ ÁýÁßÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù.
-
ÀÀ¿ëÇÁ·Î±×·¥À» Á¦ÀÛÇÒ ¶§ ´ÙÀ½ Áß ¹«¾ùÀÌ °¡Àå Áß¿äÇÑÁö¸¦
°áÁ¤ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù:
-
¼Óµµ
-
OS °£ÀÇ À̽ļº
-
SQL ¼¹öµé °£ÀÇ À̽ļº
-
persistent connectionÀ» »ç¿ëÇÑ´Ù.
-
ÀÀ¿ëÇÁ·Î±×·¥ ÃøÀÇ Ä³½ÌÀº SQL ¼¹öÀÇ ºÎÇϸ¦ °¨¼Ò½ÃŲ´Ù.
-
ÀÀ¿ëÇÁ·Î±×·¥ »ó¿¡¼ ¾²ÀÌÁö ¾Ê´Â Ä÷³Àº Äõ¸®ÇÏÁö ¾Ê´Â´Ù.
-
SELECT * FROM table_name... °ú °°Àº Äõ¸®¸¦ »ç¿ëÇÏÁö
¾Ê´Â´Ù.
-
ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¸ðµç ºÎºÐ¿¡ ´ëÇÏ¿© º¥Ä¡¸¶Å·À» ½ÃµµÇÑ´Ù.
±×·¯³ª ´ëºÎºÐÀÇ ³ë·ÂÀ» ºÎÇÏÀÇ °¡Àå À¯·ÂÇÑ ¿äÀÎÀÏ °Í °°Àº ºÎºÐÀÇ ÀÀ¿ëÇÁ·Î±×·¥µé¿¡
ÁýÁßÇÏ´Â °ÍÀÌ ÁÁ´Ù. À̸¦ ¸ðµâ ´ÜÀ§·Î ¼öÇàÇÏ¸é ¹ß°ßÇÑ º´¸ñ±¸°£À» ºü¸¥ '´õ¹Ì
¸ðµâ'·Î ´ëüÇÏ°í ³ª¼ ´ÙÀ½ º´¸ñ±¸°£À» ã´Â ÀÏ·Î ³Ñ¾î°¡´Â ½ÄÀ¸·Î ÀÏÀ» ÁøÇàÇÒ
¼ö ÀÖ´Ù.
-
ÀÏ·Ã ÀÛ¾÷ Áß¿¡ ¸¹Àº º¯°æÀÌ ÀÌ·ç¾îÁø´Ù¸é LOCK TABLESÀ»
ÀÌ¿ëÇÑ´Ù. ¿¹¸¦ µé¸é, ¿©·¯ °³ÀÇ UPDATE ¶Ç´Â DELETES ¹®ÀåÀ» ÁýÇÕÀûÀ¸·Î ¼öÇàÇÏ´Â
°æ¿ì µî.
|
À̽ļºÀÌ Áß¿äÇÑ ÀÀ¿ëÇÁ·Î±×·¥À̶ó¸é
|
-
Perl DBI/DBD
-
ODBC
-
JDBC
-
Python (¶Ç´Â ¹ü¿ë SQL ÀÎÅÍÆäÀ̽º¸¦ °¡Áø ´Ù¸¥ ¾ð¾îµé)
µîÀ» »ç¿ëÇÑ´Ù.
-
¸ðµç ´ë»ó SQL ¼¹öµéÀÌ °®Ãß°í ÀÖ´Â, ¶Ç´Â ½±°Ô ´Ù¸¥
±¸¹®À¸·Î ¸ð»çÇÒ ¼ö ÀÖ´Â SQL ±¸¹®¸¸ »ç¿ëÇÑ´Ù. www.mysql.com ÀÇ crash-me
ÆäÀÌÁö¸¦ º¸¸é µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
-
´Ù¸¥ OS³ª SQL¼¹öµé¿¡ ¾ø´Â ±â´ÉµéÀ» Á¦°øÇϱâ À§ÇØ
wrapper ÇÁ·Î±×·¥À» Á¦ÀÛÇÏ¿© »ç¿ëÇÑ´Ù.
|
º¸´Ù ºü¸¥ ¼Óµµ°¡ ¿ä±¸µÈ´Ù¸é
|
-
º´¸ñ±¸°£(bottleneck)À» (CPU, µð½ºÅ©, ¸Þ¸ð¸®, SQL ¼¹ö,
OS, API, ¶Ç´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡¼) ã¾Æ³»¼ Á¦°ÅÇÏ´Â ÀÏ¿¡ ÁýÁßÇÑ´Ù.
-
´õ ºü¸¥ ¼Óµµ¿Í À¯¿¬¼ºÀ» Á¦°øÇÏ´Â MySQLÀÇ È®Àå±â´ÉÀ»
»ç¿ëÇÑ´Ù.
-
SQL ¼¹ö¿¡ °üÇÑ Áö½ÄÀ» ´õ ¸¹ÀÌ ½ÀµæÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇϱâ
À§ÇÑ °¡Àå ºü¸¥ SQL ±¸¹®À» »ç¿ëÇÏ°í º´¸ñ¿ä¼Ò¸¦ »çÀü¿¡ Á¦°ÅÇÑ´Ù.
-
Å×ÀÌºí ·¹À̾ƿô°ú Äõ¸®µéÀ» ÃÖÀûÈÇÑ´Ù.
-
select ¼Óµµ¸¦ Áõ°¡½ÃÅ°±â À§ÇØ replicationÀ» »ç¿ëÇÑ´Ù.
-
µ¥ÀÌÅͺ£À̽º°¡ ´À¸° ³×Æ®¿öÅ©·Î ¿¬°áµÇ¾î ÀÖ´Ù¸é, ¾ÐÃàµÈ
Ŭ¶óÀ̾ðÆ®/¼¹ö ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÑ´Ù.
-
ÀÀ¿ëÇÁ·Î±×·¥ÀÇ Ãʱ⠹öÀüÀÌ À̽ļº¿¡ ÀÖ¾î¼ ºÎ½ÇÇÏ´õ¶óµµ
°ÆÁ¤ÇÒ ÇÊ¿ä ¾ø´Ù. ¹®Á¦¸¦ ¸ÕÀú ÇØ°áÇÏ°í ³ª¼ ³ªÁß¿¡ ¾ðÁ¦µçÁö ÃÖÀûÈÇÒ ¼ö
ÀÖ´Ù.(Don't be afraid to make the first version of your application not
perfectly portable; when you have solved your problem, you can always optimize
it later.)
|
MySQL ÃÖÀûÈ
|
-
ÄÄÆÄÀÏ·¯¿Í ÄÄÆÄÀÏ ¿É¼ÇÀ» ÃæºÐÈ÷ °í·ÁÇÏ¿© ¼±ÅÃÇÑ´Ù.
-
°¡Àå ÈǸ¢ÇÑ MySQL ½ÃÀÛ ¿É¼ÇÀ» ã´Â´Ù.
-
MySQL ¸Å´º¾óÀ» ã¾Æº¸°í Paul DuBois ÀÇ MySQL ¼ÀûÀ»
Àд´Ù.
-
EXPLAIN SELECT, SHOW VARIABLES, SHOW STATUS, SHOW
PROCESSLIST ¸í·ÉÀ» »ç¿ëÇÑ´Ù.
-
Äõ¸® ¿ÉƼ¸¶ÀÌÀú°¡ µ¿ÀÛÇÏ´Â ¹æ½ÄÀ» °øºÎÇØ µÐ´Ù.
-
Å×À̺íÀ» °ü¸®ÇÑ´Ù.(myisamchk, CHECK TABLE, OPTIMIZE
TABLE)
-
MySQL È®Àå±â´ÉÀ» »ç¿ëÇÏ¿© ¼Óµµ¸¦ ÁõÁø½ÃŲ´Ù.
-
ƯÁ¤ ÇÔ¼ö°¡ ¸¹Àº °÷¿¡¼ ÀÚÁÖ »ç¿ëµÉ °ÍÀ̶ó¸é MySQL
»ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö(UDF)·Î Á÷Á¢ Á¦ÀÛÇÑ´Ù.
-
Á¤¸» ÇÊ¿äÇÑ °æ¿ì°¡ ¾Æ´Ï¶ó¸é, Å×ÀÌºí ¼öÁØ ¶Ç´Â Ä÷³
¼öÁØ¿¡¼ GRANT ¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
-
MySQL °í°´ Áö¿ø ¼ºñ½º¿¡ ºñ¿ëÀ» ÁöºÒÇÏ°í ¹®Á¦ ÇØ°áÀ»
À§ÇÑ µµ¿òÀ» ¹Þ´Â´Ù :)
|
MySQLÀÇ ÄÄÆÄÀÏ ¹× ¼³Ä¡
|
-
ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡¼ »ç¿ë °¡´ÉÇÑ ÃÖ»óÀÇ ÄÄÆÄÀÏ·¯¸¦ ¼±ÅÃÇÔÀ¸·Î
º¸Åë 10~30% Á¤µµ ¼º´É Çâ»óÀ» ±â´ëÇÒ ¼ö ÀÖ´Ù.
-
Intel ±â¹ÝÀÇ ¸®´ª½º ½Ã½ºÅÛÀ̶ó¸é MySQLÀ» pgcc(ÆæƼ¾ö±Þ¿¡
ÃÖÀûÈµÈ ¹öÀüÀÇ gcc)·Î ÄÄÆÄÀÏ ÇÑ´Ù. ±×·¯³ª, (ÄÄÆÄÀϵÈ) ¹ÙÀ̳ʸ®´Â ÀÎÅÚ
ÆæƼ¾ö CPU¿¡¼¸¸ µ¿ÀåÇÒ °ÍÀÌ´Ù.
-
MySQL ¸Å´º¾ó¿¡¼ ±ÇÇÏ´Â Ç÷§Æû º° ÃÖÀûÈ ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.
-
Åë»óÀûÀ¸·Î ƯÁ¤ CPU¸¦ À§ÇÑ º»¿¬ÀÇ ÄÄÆÄÀÏ·¯(SparcÀ»
À§ÇÑ Sun Workshop°ú °°Àº)¸¦ »ç¿ëÇϸé gcc º¸´Ù ´õ ³ªÀº ¼º´ÉÀ» ±â´ëÇÒ ¼ö
ÀÖ´Ù. ±×·¯³ª, Ç×»ó ±×·± °ÍÀº ¾Æ´Ï´Ù.
-
MySQLÀ» »ç¿ëÇÏ·Á´Â ÇÑ °¡Áö ¹®Àڼ¸¸ ÁöÁ¤ÇÏ¿© ÄÄÆÄÀÏÇÑ´Ù.
-
mysqld ½ÇÇàÆÄÀÏÀ» Á¤ÀûÀ¸·Î ÄÄÆÄÀÏ(--with-mysqld-ldflags=-all-static)ÇÏ°í
strip sql/mysqld ¸í·ÉÀ¸·Î ÃÖÁ¾ ½ÇÇàÆÄÀÏ¿¡¼ µð¹ö±× Äڵ带 Á¦°ÅÇÑ´Ù.
-
MySQLÀÌ C++ ¿¹¿Ü󸮸¦ ÇÏÁö ¾ÊÀ¸¸é, Áï ¿¹¿Üó¸® Áö¿ø
¿É¼ÇÀ» »©°í ÄÄÆÄÀÏÇÏ¸é ¼º´ÉÀÌ Å©°Ô Çâ»óµÈ´Ù.
-
¿î¿µÃ¼Á¦°¡ ³×ÀÌƼºê ¾²·¹µå(native thread)¸¦ Áö¿øÇÑ´Ù¸é
mit-pthreads ¶óÀ̺귯¸® ´ë½Å ³×ÀÌƼºê ¾²·¹µå¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù.
-
»ý¼ºµÈ ½ÇÇàÆÄÀÏÀ» MySQL º¥Ä¡¸¶Å© Å×½ºÆ®·Î Å×½ºÆ®ÇØ
º»´Ù.
|
À¯Áö º¸¼ö
|
-
°¡´ÉÇϸé Á¤±âÀûÀ¸·Î OPTIMIZE table À» ½ÇÇàÇÑ´Ù. ÀÌ´Â
ƯÈ÷ ÀÚÁÖ °»½ÅµÇ´Â °¡º¯Å©±â ·¹ÄÚµåµé¿¡ ´ëÇØ Áß¿äÇÏ´Ù.
-
Á¤±âÀûÀ¸·Î myisamchk -a ¸í·ÉÀ» »ç¿ëÇÏ¿© Å×À̺íµéÀÇ
key ºÐ»ê »óŸ¦ °»½ÅÇÑ´Ù. ÀÌ ÀÛ¾÷À» ¼öÇàÇϱâ Àü¿¡ ¹Ýµå½Ã MySQLÀ» ¼Ë´Ù¿îÇؾß
ÇÑ´Ù´Â Á¡À» ÀØÁö ¾Ê´Â´Ù.
-
ÆÄÀϵéÀÌ Á¶°¢³ »óŶó¸é ´Ù¸¥ µð½ºÅ©·Î ¸ðµÎ º¹»çÇÏ°í
±âÁ¸ÀÇ µð½ºÅ©¸¦ ±ú²ýÀÌ ÇÑ ÈÄ ´Ù½Ã ÆÄÀÏÀ» ¿Å±â´Â Àϵµ ½ÃµµÇØ º¼¸¸ÇÑ °¡Ä¡°¡
ÀÖ´Ù.
-
¹®Á¦°¡ ¹ß»ýÇÑ´Ù¸é, Å×À̺íÀ» myisamchk³ª CHECK table
¸í·ÉÀ¸·Î °Ë»çÇÑ´Ù.
-
MySQLÀÇ »óŸ¦ mysqladmin -i10 processlist extended-status
¸í·ÉÀ¸·Î ¸ð´ÏÅÍÇÑ´Ù.
-
MySQL GUI Ŭ¶óÀ̾ðÆ®¸¦ »ç¿ëÇϸé ÇÁ·Î¼¼½º ¸ñ·Ï°ú »óŸ¦
´Ù¸¥ À©µµ¿ì¿¡¼ ¸ð´ÏÅÍÇÒ ¼ö ÀÖ´Ù.
-
mysqladmin debug ¸í·ÉÀ» »ç¿ëÇؼ Àá±Ý(lock)°ú ¼º´É¿¡
°üÇÑ Á¤º¸¸¦ ¾ò´Â´Ù.
|
SQL ÃÖÀûÈ
|
»ç¿ëÇÏ´Â °ÍÀÌ ÁÁÀº °Í¿¡¸¸ SQLÀ» »ç¿ëÇÏ°í ±×·¸Áö ¾ÊÀº
°÷¿¡¼´Â ´Ù¸¥ °ÍÀ» »ç¿ëÇÑ´Ù. SQL´Â ´ÙÀ½°ú °°Àº °÷¿¡ »ç¿ëÇÑ´Ù.
-
WHERE Àý¿¡ ÀÇÁ¸ÇÏ¿© ÇàÀ» ã´Â °æ¿ì
-
Å×À̺íµéÀ» JOIN ÇÒ °æ¿ì
-
GROUP BY
-
ORDER BY
-
DISTINCT
´ÙÀ½°ú °°Àº ÀÏ¿¡´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù.
-
µ¥ÀÌÅÍ(date ¿Í °°Àº)ÀÇ À¯È¿¼ºÀ» °ËÁõÇÏ´Â °æ¿ì
-
°è»ê±â·Î »ç¿ë
Tips
-
key¸¦ Æø ³Ð°Ô »ç¿ëÇÑ´Ù.
-
key´Â °Ë»ö¿¡´Â ÁÁÁö¸¸, key Ä÷³¿¡ ´ëÇØ insert ³ª update¸¦
¼öÇàÇÏ´Â µ¥´Â ÁÁÁö ¾Ê´Ù.
-
µ¥ÀÌÅ͸¦ Á¦3ÀÇ º¸Åë µ¥ÀÌÅͺ£À̽º Çü½Ä(in the 3rd normal
database form)À¸·Î À¯ÁöÇϵÇ, ¼Óµµ¸¦ Áß½ÃÇÑ´Ù¸é Á¤º¸ÀÇ Áߺ¹À̳ª ¿ä¾à Å×À̺í(summary
tables)À» »ý¼ºÇÏ´Â ÀÏÀ» ±âÇÇÇÒ ÇÊ¿ä´Â ¾ø´Ù.
-
Å« Å×ÀÌºí¿¡ ´ëÇؼ GROUP BY¸¦ ³²¿ëÇÏ´Â ´ë½Å ±× Å×ÀÌºí¿¡
´ëÇÑ ¿ä¾à Å×À̺íÀ» »ý¼ºÇÏ°í ÀÌ Å×ÀÌºí¿¡ ´ëÇØ Äõ¸®ÇÏ´Â °ÍÀÌ ³´´Ù.
-
UPDATE table set count=count+1 where key_column=constant
¿Í °°Àº ¹®ÀåÀº ¸Å¿ì ºü¸£´Ù!
-
±â·Ï Å×À̺í(log tables)¿¡ °üÇÑ ÇÑ, Á¤±âÀûÀ¸·Î ¿ä¾à
Å×À̺íÀ» ¸¸µå´Â °ÍÀÌ ¿ä¾àÅ×À̺íÀ» ±×´ë·Î µÎ´Â °Í º¸´Ù ³ªÀ» °ÍÀÌ´Ù.
-
INSERT¿¡¼ µðÆúÆ® °ª(default values)ÀÇ ÀÕÁ¡À» ½ÊºÐ
È°¿ëÇÑ´Ù.
|
SQL ¼¹öµé °£ÀÇ ¼Óµµ Â÷ÀÌ (´ÜÀ§:ÃÊ)
|
key ÀÌ¿ë 2,000,000 Çà Àбâ
|
NT
|
Linux
|
mysql |
367
|
249
|
mysql_odbc |
464
|
|
db2_odbc |
1,206
|
|
imformix_odbc |
121,126
|
|
ms-sql_odbc |
1,634
|
|
oracle_odbc |
20,800
|
|
solid_odbc |
877
|
|
sybase_odbc |
17,614
|
|
350,768 Çà »ðÀÔ
|
NT
|
Linux
|
mysql |
381
|
206
|
mysql_odbc |
619
|
|
db2_odbc |
3,460
|
|
informix_odbc |
2,692
|
|
ms-sql_odbc |
4,012
|
|
oracle_odbc |
11,291
|
|
solid_odbc |
1,801
|
|
sybase_odbc |
4,802
|
|
À§ÀÇ Å×½ºÆ®´Â MySQLÀÇ °æ¿ì 8M ij½Ã¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤ÇÑ
°ÍÀÌ°í ´Ù¸¥ µ¥ÀÌÅͺ£À̽ºµéÀº ¼³Ä¡ ±âº»°ªÀ» ÀÌ¿ëÇÏ¿´´Ù.
|
Áß¿äÇÑ MySQL ±âµ¿ ¿É¼Çµé
|
back_log |
Á¢¼Ó ¼ö°¡ ¸¹´Ù¸é º¯°æÇÑ´Ù. |
thread_cache_size |
Á¢¼Ó ¼ö°¡ ¸¹´Ù¸é º¯°æÇÑ´Ù. |
key_buffer_size |
À妽º ÆäÀÌÁö¸¦ À§ÇÑ Ç®(pool)
Å©±â. Å« ¼öÄ¡¸¦ ÁöÁ¤ÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. |
bdb_cache_size |
BDB Å×À̺íµé¿¡ ÀÇÇØ »ç¿ëµÇ´Â
·¹ÄÚµå¿Í Å° ij½Ã Å©±â. |
table_cache |
¸¹Àº Å×À̺íÀ» °¡Áö°í Àְųª
µ¿½Ã Á¢¼Ó ¼ö°¡ ¸¹´Ù¸é º¯°æÇÑ´Ù. |
delay_key_write |
¸ðµç Å° ¾²±â µ¿ÀÛÀ» ¹öÆÛ¸µÇÒ
ÇÊ¿ä°¡ ÀÖ´Ù¸é ÁöÁ¤ÇÑ´Ù. |
log_slow_queries |
½Ã°£ÀÌ ¸¹ÀÌ °É¸®´Â Äõ¸®¸¦
ãÀ» ¶§ »ç¿ëÇÑ´Ù. |
max_heap_table_size |
GROUP BY Àý¿¡¼ »ç¿ëµÈ´Ù. |
sort_buffer |
ORDER BY ¿Í GROUP BY Àý¿¡¼
»ç¿ëµÈ´Ù. |
myisam_sort_buffer_size |
REPAIR TABLE ¹®¿¡¼ »ç¿ëµÈ´Ù. |
join_buffer_size |
Å° ¾øÀÌ join ÇÒ ¶§ »ç¿ëµÈ´Ù. |
|
Å×À̺í ÃÖÀûÈ
|
|
MySQLÀÌ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â ¹æ½Ä
|
-
µ¥ÀÌÅͺ£À̽º´Â µð·ºÅ丮·Î ÀúÀåµÈ´Ù.
-
Å×À̺íÀº ÆÄÀÏ·Î ÀúÀåµÈ´Ù.
-
Ä÷³Àº °¡º¯ ±æÀ̳ª °íÁ¤ ±æÀÌ À¯ÇüÀ¸·Î ÆÄÀÏ ¾È¿¡ ÀúÀåµÈ´Ù.
BDB Å×ÀÌºí¿¡¼ µ¥ÀÌÅÍ´Â ÆäÀÌÁö¿¡ ÀúÀåµÈ´Ù.
-
¸Þ¸ð¸® ±â¹ÝÀÇ Å×ÀÌºíµµ Áö¿øµÈ´Ù.
-
µ¥ÀÌÅͺ£À̽º¿Í Å×À̺íµéÀº ´Ù¸¥ µð½ºÅ©·ÎºÎÅÍ ½Éº¼¸¯
¸µÅ©µÉ ¼ö ÀÖ´Ù.
-
Windows¿ë MySQLÀº .sym ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡
´ëÇÑ ³»ºÎÀûÀÎ ½Éº¼¸¯ ¸µÅ©¸¦ Áö¿øÇÑ´Ù.
|
MySQL Å×À̺í À¯Çüµé
|
-
HEAP Å×À̺í: °íÁ¤µÈ ¼öÀÇ ·¹Äڵ常 °¡Áö´Â Å×À̺í·Î¼
¿ÀÁ÷ ¸Þ¸ð¸®¿¡¸¸ ÀúÀåµÇ¸ç HASH À妽º·Î À妽ºµÈ´Ù.
-
ISAM Å×À̺í: MySQL 3.22¿¡¼ »ç¿ëµÈ ±¸½Ä B-tree Å×À̺í
À¯ÇüÀÌ´Ù.
-
MyISAM Å×À̺í: ISAM Å×À̺íÀÇ »õ ¹öÀüÀ¸·Î ¸¹Àº È®Àå
±â´ÉµéÀ» °¡Áö°í ÀÖ´Ù.
-
¹ÙÀ̳ʸ® ȣȯ¼º
-
NULL Ä÷³¿¡ ´ëÇÑ À妽Ì
-
°¡º¯ Å©±â Å×À̺íÀÇ ÆÄÆíÈ(fragmentation)°¡ ISAM Å×À̺í
º¸´Ù ÀûÀ½
-
°Å´ë ÆÄÀÏ Áö¿ø
-
À妽º ¾ÐÃà Çâ»ó
-
Å° Åë°è Çâ»ó
-
´õ Çâ»óµÇ°í ºü¸¥ auto_increment Áö¿ø
-
SleepycatÀÇ Berkeley DB(BDB) Å×À̺í: ¾ÈÀüÇÑ Æ®·£Àè¼Ç
Áö¿ø(BEGIN WORK / COMMIT | ROLLBACK)
|
MySQL ·¹ÄÚµå À¯Çü(ISAM/MyISAM
Å×À̺í°ú °ü·ÃÇÏ¿©¼¸¸)
|
-
MySQLÀº ¸ðµç Ä÷³µéÀÌ °íÁ¤ Å©±â À¯ÇüÀ̶ó¸é (VARCHAR,
BLOB, TEXT Ä÷³ÀÌ ¾ø´Ù¸é) Å×À̺íÀ» °íÁ¤ Å©±â Å×À̺í·Î »ý¼ºÇÑ´Ù. ±×·¸Áö
¾Ê´Ù¸é, °¡º¯ Å©±â À¯ÇüÀÇ Å×À̺í·Î ¸¸µç´Ù.
-
°íÁ¤ Å©±â À¯ÇüÀº µ¿Àû Å©±â À¯Çü¿¡ ºñÇØ ¼Óµµ°¡ ºü¸£¸ç
¾ÈÀüÇÏ´Ù.
-
µ¿Àû Å©±â ·¹ÄÚµå À¯ÇüÀº ´ë°³ º¸´Ù ÀûÀº °ø°£À» »ç¿ëÇÏÁö¸¸
Å×À̺íÀÇ °»½ÅÀÌ ÀÚÁÖ ¹ß»ýÇÑ´Ù¸é ÆÄÆíÈ°¡ °¡ÁߵDZ⠸¶·ÃÀÌ´Ù.
-
¾î¶² °æ¿ì¿¡´Â ÁÖ Å×À̺íÀÇ ¼Óµµ¸¦ Çâ»ó½ÃÅ°±â À§ÇØ ¸ðµç
VARCHAR, BLOB, TEXT Ä÷³µéÀ» ´Ù¸¥ Å×À̺í·Î ¿Å±â´Â °Íµµ À¯¿ëÇÒ ¶§°¡ ÀÖ´Ù.
-
myisampack(ISAM Å×ÀÌºí¿¡¼´Â pack_isam)À» »ç¿ëÇϸé
Àбâ Àü¿ë, ¾ÐÃàµÈ Å×À̺íÀ» ¸¸µé ¼ö ÀÖ´Ù. ´À¸° µð½ºÅ©¸¦ »ç¿ëÇÒ ¶§´Â µð½ºÅ©
»ç¿ë·®À» ÃÖ¼ÒÈÇÏ´Â °ÍÀÌ ÁÁÀº ÇÑ ¹æ¹ýÀÌ µÈ´Ù. ¾ÐÃàµÈ Å×À̺íÀº ´õ ÀÌ»ó °»½ÅµÇÁö
¾Ê´Â ·Î±× Å×ÀÌºí µî¿¡ »ç¿ëÇϸé ÃÖ»óÀÌ´Ù.
|
MySQL ij½Ãµé (ÇÑ ¹ø ÀûÀçµÇ¾î
¸ðµç ¾²·¹µå°¡ °øÀ¯)
|
-
Å° ij½Ã: key_buffer_size, ±âº»°ªÀº 8M
-
Å×À̺í ij½Ã: table_cache, ±âº»°ªÀº 64
-
¾²·¹µå ij½Ã: thread_cache_size, ±âº»°ªÀº 0
-
È£½ºÆ®¸í ij½Ã: ÄÄÆÄÀÏÇÒ ¶§ º¯°æ °¡´É, ±âº»°ªÀº 128
-
¸Þ¸ð¸®¿¡ ¸ÊÇÎµÈ Å×À̺í(Memory mapped tables): ÇöÀç´Â
¾ÐÃàµÈ Å×À̺íÀ» À§Çؼ¸¸ »ç¿ëµÈ´Ù.
MySQLÀº Çà(raw) ij½Ã¸¦ °¡Áö°í ÀÖÁö ¾Ê´Ù. ±×·¯³ª,
¿î¿µÃ¼Á¦¿¡°Ô ÀÌ ÀÏÀ» ½Ãų ¼ö ÀÖ´Ù!
|
MySQL ¹öÆÛ º¯¼öµé (°øÀ¯µÇÁö ¾ÊÀ¸¸ç
½ÇÇà Áß ÀûÀçµÊ)
|
-
sort_buffer: ORDER BY / GROUP BY Àý¿¡¼
-
record_buffer: Å×À̺íÀ» ½ºÄµÇÒ ¶§
-
join_buffer_size: Å° ¾øÀÌ joinÀ» ¼öÇàÇÒ ¶§
-
myisam_sort_buffer_size: REPAIR TABLE¿¡¼
-
net_buffer_length: SQL ¹®ÀåÀ» ÀÐÀ» ¶§¿Í °á°ú °ªÀ»
¹öÆÛ¸µÇÒ ¶§
-
tmp_table_size: Àӽà °á°ú°ªÀ» À§ÇÑ HEAP-table-size
|
MySQL Å×À̺í ij½Ã°¡ µ¿ÀÛÇÏ´Â
¹æ½Ä
|
-
MyISAM Å×À̺íÀÇ ¿·Á ÀÖ´Â °¢°¢ÀÇ ÀνºÅϽº´Â À妽º
ÆÄÀÏ°ú µ¥ÀÌÅÍ ÆÄÀÏÀ» »ç¿ëÇÑ´Ù. ¸¸ÀÏ ¾î¶² Å×À̺íÀÌ µÎ °³ÀÇ ¾²·¹µå¿¡ ÀÇÇØ
»ç¿ëµÇ°Å³ª °°Àº Äõ¸®¿¡¼ µÎ ¹ø »ç¿ëµÇ¸é, MyISAMÀÌ À妽º ÆÄÀÏÀº °øÀ¯ÇÏÁö¸¸
µ¥ÀÌÅÍ ÆÄÀÏÀº ¶Ç ÇϳªÀÇ ÀνºÅϽº¸¦ À§ÇØ Ãß°¡·Î ¿°Ô µÈ´Ù.
-
ij½Ã ¾ÈÀÇ ¸ðµç Å×À̺íÀÌ »ç¿ë ÁßÀ̶ó¸é ±× ij½Ã´Â ÀϽÃÀûÀ¸·Î
Å×À̺í ij½Ã Å©±âº¸´Ù Ä¿Áø´Ù. ÀÌ·¯ÇÑ »óȲÀÌ ¹ß»ýÇϸé, ±× ´ÙÀ½ ¹æ¸éµÈ Å×À̺íÀÌ
´ÝÈ÷°Ô µÈ´Ù.
-
mysqld º¯¼ö Opend_tables¸¦ °Ë»çÇØ º¸¸é Å×À̺í ij½Ã°¡
³Ê¹« ÀÛÀºÁö ¾Æ´ÑÁö¸¦ ¾Ë ¼ö ÀÖ´Ù. ÀÌ °ªÀÌ ³ôÀ¸¸é Å×À̺í ij½Ã¸¦ ´Ã·ÁÁà¾ß
ÇÑ´Ù!
|
MySQL È®Àåµé / ¼Óµµ ÁõÁø ÃÖÀûÈ
|
-
ÃÖÀûÈµÈ Å×À̺í À¯ÇüÀ» »ç¿ëÇÑ´Ù.(HEAP, MyISAM, BDB
Å×À̺í)
-
µ¥ÀÌÅ͸¦ À§ÇÑ ÃÖÀûÀÇ Ä÷³À» »ç¿ëÇÑ´Ù.
-
°¡´ÉÇÑ ÇÑ °íÁ¤ Å©±â ·¹Äڵ带 »ç¿ëÇÑ´Ù.
-
´Ù¸¥ Àá±Ý À¯Çü(lock types)¸¦ »ç¿ëÇÑ´Ù.(SELECT HIGH_PRIORITY,
INSERT LOW_PRIORITY)
-
Auto_increment
-
REPLACE (REPLACE INTO table_name VALUES (...))
-
INSERT DELAYED
-
LOAD DATA INFILE / LOAD_FILE()
-
Çѹø¿¡ ¸¹Àº ·¹Äڵ带 Ãß°¡Çϱâ À§Çؼ´Â ´ÙÁß ·¹ÄÚµå
INSERT¸¦ »ç¿ëÇÑ´Ù.
-
SELECT INTO OUTFILE
-
LEFT JOIN, STRAIGHT JOIN
-
IS NULL °ú Á¢¸ñµÈ LEFT JOIN »ç¿ë
-
ÀϺΠ°æ¿ì, ORDER BY ´Â Å°¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
-
ÇϳªÀÇ À妽º¿¡ ÀÖ´Â Ä÷³µé¸¸ Äõ¸®ÇÒ °æ¿ì¿¡´Â Äõ¸®¸¦
¼öÇàÇϱâ À§ÇØ ±× À妽º Æ®¸®¸¸ »ç¿ëÇÏ°Ô µÈ´Ù.
-
Á¶ÀÎÀº º¸Åë subselect º¸´Ù ºü¸£´Ù. (´ëºÎºÐÀÇ SQL ¼¹öµé¿¡¼
±×·¯ÇÏ´Ù.)
-
LIMIT
-
SELECT * from table1 WHERE a > 10 LIMIT 10, 20
-
DELETE * from table1 WHERE a > 10 LIMIT 10
-
foo IN (»ó¼ö ¸ñ·Ï) ±¸¹®Àº ¸Å¿ì ÃÖÀûȵǾî ÀÖ´Ù.
-
GET_LOCK() / RELEASE_LOCK()
-
LOCK TABLES
-
INSERT ¿Í SELECT ´Â µ¿½Ã¿¡ ½ÇÇà µÉ ¼ö ÀÖ´Ù.
-
ÀÛµ¿ÇÏ°í ÀÖ´Â ¼¹ö·Î ÀÐ¾î µéÀÏ ¼ö ÀÖ´Â UDF ÇÔ¼öµé
-
¾ÐÃàµÈ Àбâ Àü¿ë Å×À̺íµé
-
CREATE TEMPORARY TABLE
-
CREATE TABLE .. SELECT
-
MyISAM Å×À̺íÀ» RAID¿Í »ç¿ëÇϸé ÇϳªÀÇ ÆÄÀÏÀ» ¿©·¯°³ÀÇ
ÆÄÀϵé·Î ³ª´©¾î ÀϺΠÆÄÀϽýºÅÛÀÇ 2G Á¦ÇÑÀ» ³Ñ¾î¼´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
-
Delayed_keys
-
¸®Çø®ÄÉÀ̼Ç(replication)
|
MySQLÀÌ À妽º¸¦ »ç¿ëÇÒ °æ¿ì
|
-
>, >=, =, <, <=, Å°¿¡ ´ëÇØ IF NULL °ú BETWEENÀ»
»ç¿ëÇÒ ¶§
SELECT * FROM table_name WHERE key_part1=1 and
key_part2 > 5;
SELECT * FROM table_name WHERE key_part1 IS NULL;
-
¿ÍÀϵåÄ«µå ¹®ÀÚ·Î ½ÃÀÛÇÏÁö ¾Ê´Â LIKE ÀýÀ» »ç¿ëÇÒ ¶§
SELECT * FROM table_name WHERE key_part1 LIKE
'jani%'
-
Á¶ÀÎÀ» ¼öÇàÇÏ¸é¼ ´Ù¸¥ Å×À̺íµé·ÎºÎÅÍ ·¹Äڵ带 °¡Á®¿Ã
¶§
SELECT * from t1, t2 where t1.col=t2.key_part;
-
ƯÁ¤ À妽º¿¡ ´ëÇؼ MAX() ³ª MIN() °ªÀ» ±¸ÇÒ ¶§
SELECT MIN(key_part2), MAX(key_part2) FROM table_name
where key_part1=10;
-
Å°ÀÇ Á¢µÎºÎ¿¡ ´ëÇØ ORDER BY ³ª GROUP BY ÀýÀ» ¼öÇàÇÒ
¶§
SELECT * FROM foo ORDER BY key_part1, key_part2,
key_part3;
-
Äõ¸®¿¡ »ç¿ëµÇ´Â ¸ðµç Ä÷³ÀÌ ÇÑ °³ÀÇ Å°ÀÇ ºÎºÐ(part)ÀÏ
°æ¿ì
SELECT key_part3 FROM table_name WHERE key_part1=1;
|
MySQLÀÌ À妽º¸¦ »ç¿ëÇÏÁö ¾ÊÀ»
°æ¿ì
|
-
MySQLÀº Å×À̺í Àüü¸¦ ½ºÄµÇÏ´Â ´õ ºü¸¦ °ÍÀ̶ó°í ÆǴܵǸé
À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù. ¿¹¸¦ µé¾î, key_part1ÀÌ 1°ú 100»çÀÌÀÇ °ªÀ»
°í¸£°Ô °¡Áö°í ÀÖ´Ù¸é, ´ÙÀ½°ú °°Àº Äõ¸®¿¡¼ À妽º¸¦ »ç¿ëÇÏ´Â °ÍÀº ÁÁÁö
¾Ê´Ù.
SELECT * FROM table_name where key_part1 > 1 and
key_part1 < 90;
-
HEAP Å×À̺íÀ» »ç¿ëÇÏ°í ÀÖÀ¸¸ç, ¸ðµç Å° ºÎºÐµé¿¡ ´ëÇؼ
= ·Î °Ë»öÇÏÁö ¾ÊÀ» °æ¿ì
-
HEAP Å×ÀÌºí¿¡ ´ëÇØ ORDER BY Àý·Î Äõ¸®ÇÒ °æ¿ì
-
¸Ç óÀ½ÀÇ Å° ºÎºÐÀ» »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì
SELECT * FROM table_name WHERE key_part2 = 1;
-
¿ÍÀϵåÄ«µå ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â LIKE ¸¦ »ç¿ëÇÒ °æ¿ì
SELECT * FROM table_name WHERE key_part1 LIKE
'%jani%'
-
ÇϳªÀÇ À妽º¿¡ ´ëÇؼ °Ë»öÇÏ¸é¼ ´Ù¸¥ À妽º¿¡ ´ëÇؼ´Â
ORDER BY ¸¦ Àû¿ëÇÒ ¶§
SELECT * FROM table_name WHERE key_part1 = # ORDER
BY key2;
|
EXPLAIN »ç¿ë¹ý ÀÍÈ÷±â
|
Áö³ªÄ¡°Ô ´À¸®´Ù°í »ý°¢µÇ´Â ¸ðµç Äõ¸® ¹®Àå¿¡ ´ëÇØ EXPLAIN
À» »ç¿ëÇÑ´Ù.
mysql> explain select t3.DateOfAction, t1.TransactionID
-> from t1 join t2 join t3
-> where t2.ID = t1.TransactionID and t3.ID = t2.GroupID
-> order by t3.DateOfAction, t1.TransactionID;
+-------+--------+---------------+---------+---------+------------------+------+---------------------------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+-------+--------+---------------+---------+---------+------------------+------+---------------------------------+
| t1 | ALL | NULL | NULL | NULL | NULL | 11 | Using temporary; Using filesort |
| t2 | ref | ID | ID | 4 | t1.TransactionID | 13 | |
| t3 | eq_ref | PRIMARY | PRIMARY | 4 | t2.GroupID | 1 | |
+-------+--------+---------------+---------+---------+------------------+------+---------------------------------+
À¯Çü ALL°ú ¹üÀ§´Â ÀáÀçÀûÀÎ ¹®Á¦Á¡À» ¾Ë¸®°í ÀÖ´Ù.
|
SHOW PROCESSLIST »ç¿ë¹ý ÀÍÈ÷±â
|
ÇöÀç ÁøÇà »óȲÀ» ÆľÇÇϱâ À§Çؼ´Â SHOW processlist
¸¦ »ç¿ëÇÑ´Ù.
+----+-------+-----------+----+---------+------+--------------+-------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+---------+------+--------------+-------------------------------------+
| 6 | monty | localhost | bp | Query | 15 | Sending data | select * from station,station as s1 |
| 8 | monty | localhost | | Query | 0 | | show processlist |
+----+-------+-----------+----+---------+------+--------------+-------------------------------------+
mysql¿¡¼ KILLÀ» »ç¿ëÇϰųª ¸í·ÉÇà¿¡¼ mysqladminÀ»
»ç¿ëÇÏ¿© ºÒÇÊ¿äÇÑ(runaway) ¾²·¹µåµéÀ» ¾ø¾Ù ¼ö ÀÖ´Ù.
|
MySQLÀÌ Äõ¸®¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀ» ã´Â
¹æ¹ý
|
´ÙÀ½ ¸í·ÉµéÀ» ½ÇÇàÇؼ °á°ú¸¦ ÀÌÇØÇϵµ·Ï ³ë·ÂÇÑ´Ù.
-
SHOW VARIABLES;
-
SHOW COLUMNS FROM ... \G
-
EXPLAIN SELECT ... \G
-
FLUSH STATUS;
-
SELECT ...;
-
SHOW STATUS;
|
MySQLÀº ÀÌ·± °æ¿ì ±ØÈ÷ ¿ì¼öÇÏ´Ù
|
-
·Î±× ±â·Ï½Ã
-
¸¹Àº ¿¬°áÀÌ ÀÌ·ç¾î Áú ¶§, ¿¬°á ¼Óµµ°¡ ¸Å¿ì ºü¸£´Ù.
-
SELECT ¿Í INSERT ¸¦ µ¿½Ã¿¡ »ç¿ëÇÏ´Â °÷¿¡¼.
-
update¸¦ ½Ã°£ÀÌ ¿À·¡ °É¸®´Â select ¹®°ú °áÇÕÇÏÁö ¾ÊÀ»
¶§
-
´ëºÎºÐÀÇ select/update ¹®ÀÌ °íÀ¯ÇÑ Å°µéÀ» »ç¿ëÇÒ ¶§
-
¸¹Àº Å×À̺íÀ» Àå½Ã°£ Àá±Ý(lock) Ãæµ¹ ¾øÀÌ »ç¿ëÇÒ ¶§
-
Å©±â°¡ Å« Å×À̺íÀ» °¡Áö°í ÀÖÀ» ¶§ (MySQL Àº ¸Å¿ì ÄÄÆÑÆ®ÇÑ
Å×À̺í Æ÷¸ËÀ» »ç¿ëÇÑ´Ù.)
|
MySQL »ç¿ë¿¡ ÀÖ¾î¼ ÇÇÇØ¾ß ÇÒ
°Íµé
|
-
Å×À̺íÀ» UPDATE ¶Ç´Â »èÁ¦µÈ ÇàÀ» Å×ÀÌºí¿¡ ´ëÇØ INSERTÇϸé¼
½Ã°£ÀÌ ¿À·¡ °É¸®´Â SELECT Àýµé°ú °áÇÕ½ÃÅ°´Â ÀÏ
-
WHERE Àý¿¡ ¿Ã ¼ö ÀÖ´Â °Íµé¿¡ ´ëÇÑ HAVING
-
Å°¸¦ »ç¿ëÇÏÁö ¾ÊÀº, ¶Ç´Â ÃæºÐÈ÷ À¯´ÏÅ©ÇÏÁö ¾ÊÀº Å°¸¦
»ç¿ëÇÑ JOIN
-
Ä÷³ À¯ÇüÀÌ ¼·Î ´Ù¸¥ Ä÷³µé¿¡ ´ëÇØ JOIN ¼öÇà
-
¿ÂÀüÇÑ Å° Àüü°¡ ¾Æ´Ñ Å°ÀÇ ºÎºÐ¿¡ ´ëÇؼ¸¸ '=' ·Î ºñ±³¿¬»êÇÒ
¶§ HEAP Å×À̺íÀ» »ç¿ë
-
MySQL monitor ¿¡¼ UPDATE ³ª DELETE¸¦ »ç¿ëÇÏ¸é¼ WHERE
ÀýÀ» »ý·«ÇÏ´Â ÀÏ. ¸¸¾à ÀÚ½ÅÀÌ ÀÌ·± °æÇâÀÌ ÀÖ´Ù¸é, mysql Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥À»
½ÇÇàÇÒ ¶§ --i-am-a-dummy ¿É¼ÇÀ» Ãß°¡Çϱ⠹ٶõ´Ù.
|
MySQLÀÇ µ¶Æ¯ÇÑ Àá±Ýµé(locks)
|
-
³»ÀåµÈ Å×À̺í Àá±Ý
-
LOCK TABLES (¸ðµç Å×À̺í À¯Çü¿¡ ´ëÇØ µ¿ÀÛÇÔ)
-
GET_LOCK() / RELEASE_LOCK()
-
Page locks (BDB Å×ÀÌºí¿¡ ´ëÇؼ)
-
ALTER TABLE ¿ª½Ã BDB Å×ÀÌºí¿¡ ´ëÇØ Å×À̺í Àá±ÝÀ» ¼öÇàÇÔ
-
LOCK TABLES ´Â ´ÙÁß Àбâ ÀÛ¾÷ ¶Ç´Â ÇÑ°³ÀÇ ¾²±â ÀÛ¾÷À»
Çã¿ëÇÑ´Ù.
-
º¸Åë WRITE Àá±ÝÀº READ Àá±Ý º¸´Ù ¿ì¼± ¼øÀ§°¡ ³ô´Ù.
¾²±â ÀÛ¾÷ÀÌ ¹«ÇÑÁ¤ ´ë±â »óÅ¿¡ ³õÀÌ°Ô µÇ´Â °æ¿ì¸¦ ÇÇÇϱâ À§Çؼ´Ù(to avoid
starving the writers). ±×¸® Áß¿äÇÏÁö ¾ÊÀº ¾²±â ÀÛ¾÷Àº LOW_PRIORITY Å°¿öµå¸¦
»ç¿ëÇÏ¿© lock handler°¡ Àбâ ÀÛ¾÷¿¡ ¸ÕÀú Çã°¡¸¦ ³»¾î ÁÖµµ·Ï ÇÏ´Â °Íµµ ÇÑ
¹æ¹ýÀÌ´Ù.
UPDATE LOW_PRIORITY SET value=10 WHERE id=10;
|
¹®Á¦¸¦ ½±°Ô ÇØ°áÇϱâ À§ÇØ MySQL·ÎºÎÅÍ
´õ ¸¹Àº Á¤º¸¸¦ ¾ò´Â ±â¹ýµé
|
MySQL ¸¸ÀÇ ±â´ÉµéÀ» Ç×»ó ÁÖ¼®Ã³¸®ÇÔÀ¸·Î½á Äõ¸®ÀÇ À̽ļº
³ôÀÏ ¼ö ÀÖ´Ù.
SELECT /*! SQL_BUFFER_RESULTS */ ...
-
SELECT SQL_BUFFER_RESULTS ...
MySQLÀÌ Àӽà °á°ú ¼¼Æ®¸¦ ¸¸µéµµ·Ï °Á¦ÇÑ´Ù. Àӽà ¼¼Æ®°¡ ¸¸µé¾îÁö¸é, ±×
Å×À̺íµé¿¡ ´ëÇÑ ¸ðµç Àá±ÝÀÌ ÇØÁ¦µÈ´Ù. ÀÌ´Â Å×À̺í Àá±ÝÀ¸·Î ÀÎÇØ ¹®Á¦°¡
¹ß»ýÇßÀ» ¶§³ª Äõ¸® °á°ú¸¦ Ŭ¶óÀ̾ðÆ®·Î Àü¼ÛÇϴµ¥ ¿À·£ ½Ã°£ÀÌ ¼Ò¿äµÇ´Â
°æ¿ì¿¡ µµ¿òÀÌ µÈ´Ù.
-
SELECT SQL_SMAIL_RESULT ... GROUP BY ...
°á°ú ¼¼Æ®°¡ ÀûÀº ¼öÀÇ ·¹Äڵ常 °¡Áö°Ô²û Çϵµ·Ï ¿ÉƼ¸¶ÀÌÀú¿¡°Ô Áö½ÃÇÑ´Ù.
-
SELECT SQL_BIG_RESULT ... GROUP BY ...
°á°ú ¼¼Æ®°¡ ¸¹Àº ¼öÀÇ ·¹Äڵ带 °¡Áöµµ·Ï ¿ÉƼ¸¶ÀÌÀú¿¡°Ô Áö½ÃÇÑ´Ù.
-
SELECT STRAIGHT_JOIN ...
¿ÉƼ¸¶ÀÌÀú°¡ FROM Àý¿¡ ³ªÅ¸³ ¼ø¼´ë·Î Å×À̺íÀ» join Çϵµ·Ï °Á¦ÇÑ´Ù.
-
SELECT ... FROM table_name [USE INDEX (index_list)
| IGNORE INDEX (index_list)] table_name2
MySQLÀÌ Æ¯Á¤ À妽ºµéÀ» »ç¿ëÇϰųª ¹«½ÃÇϵµ·Ï °Á¦ÇÑ´Ù.
|
Æ®·£Àè¼Ç »ç¿ë¿¹
|
-
MyISAM Å×ÀÌºí¿¡ ´ëÇØ Æ®·£Àè¼ÇÀ» ¼öÇàÇÏ´Â ¹æ¹ý:
mysql> LOCK TABLES trans READ, customer WRITE;
mysql> select sum(value) from trans where customer_id=some_id;
mysql> update customer set total_value=sum_from_previous_statement where
customer_id=some_id;
mysql> UNLOCK TABLES;
-
Berkeley DB Å×ÀÌºí¿¡ ´ëÇØ Æ®·£Àè¼ÇÀ» ¼öÇàÇÏ´Â ¹æ¹ý:
mysql> BEGIN WORK;
mysql> select sum(value) from trans where customer_id=some_id;
mysql> update customer set total_value=sum_from_previous_statement where
customer_id=some_id;
mysql> COMMIT;
-
´ÙÀ½°ú °°ÀÌ ÇÔÀ¸·Î½á ¿©·¯ Æ®·£Àè¼Çµé °£ÀÇ °£¼·À» ¹æÁöÇÒ
¼ö ÀÖ´Ù´Â Á¡¿¡ ÁÖ¸ñÇÒ ÇÊ¿ä°¡ ÀÖ´Ù:
UPDATE customer SET value=value+new_value WHERE customer_id=some_id;
|
REPLACE »ç¿ë¿¹
|
-
REPLACE´Â Å×À̺íÀÇ ÀÌÀü ·¹Äڵ尡 »õ ·¹ÄÚµå¿Í °°Àº
°íÀ¯ À妽º °ªÀ» °¡Áö°í ÀÖ´Ù¸é ¿¹Àü ·¹Äڵ尡 ¸ÕÀú »èÁ¦µÇ°í »õ ·¹Äڵ尡
Ãß°¡µÈ´Ù´Â Á¡¸¸ Á¦¿ÜÇϸé INSERT¿Í ¶È°°ÀÌ ÀÛµ¿ÇÑ´Ù.
´ÙÀ½°ú °°ÀÌ ÇÏ´Â ´ë½Å,
SELECT 1 FROM t1 WHERE key=#
IF found-row
LOCK TABLES t1
DELETE FROM t1 WHERE key1=#
INSERT INTO t1 VALUES (...)
UNLOCK TABLES t1;
ENDIF
´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
REPLACE INTO t1 VALUES (...)
|
ÀϹÝÀûÀÎ ÆÁ
|
-
ÇÁ¶óÀ̸Ӹ® Å°´Â ªÀº °ÍÀ» »ç¿ëÇÑ´Ù. Å×À̺í Á¶ÀÎÇÒ
¶§´Â ¹®ÀÚ¿Çü º¸´Ù´Â ¼ýÄ¡ÇüÀ» »ç¿ëÇÑ´Ù.
-
¿©·¯ ºÎºÐÀ¸·Î ±¸¼ºµÈ Å°¸¦ »ç¿ëÇÒ ¶§´Â ù ¹ø° ºÎºÐÀÌ
°¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â Å°À̾î¾ß ÇÑ´Ù.
-
Àǽɽº·¯¿ï ¶§´Â, ¾ÕºÎºÐÀÌ ´õ ¸¹ÀÌ Áߺ¹µÈ Ä÷³À» »ç¿ëÇؼ
º¸´Ù ³ªÀº Å° ¾ÐÃà È¿°ú¸¦ ¾ò´Â´Ù.
-
Ŭ¶óÀ̾ðÆ®¸¦ ½ÇÇà ÁßÀÌ°í MySQL ¼¹ö°¡ °°Àº ¸Ó½Å¿¡
ÀÖ´Ù¸é, TCP/IP ´ë½Å¿¡ À¯´Ð½º ¼ÒÄÏÀ» »ç¿ëÇÏ¿© ¼¹ö¿¡ ¿¬°áÇÏ´Â °ÍÀÌ ÁÁ´Ù.(ÀÌ·¸°Ô
Çϸé 7.5% Á¤µµ±îÁö È¿À²ÀÌ ÁõÁøµÈ´Ù.) MySQL ¼¹ö¿¡ Á¢¼ÓÇÒ ¶§ È£½ºÆ®À̸§À̳ª
localhost¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é À¯´Ð½º ¼ÒÄÏÀ¸·Î Á¢¼ÓÇÏ°Ô µÈ´Ù.
-
°¡´ÉÇÏ´Ù¸é --skip-locking(ÀϺΠ¿î¿µÃ¼Á¦¿¡¼´Â ÀÌ °ÍÀÌ
±âº»°ªÀÌ´Ù)À» »ç¿ëÇÑ´Ù. ÀÌ´Â ¿ÜºÎÀûÀÎ Àá±ÝÀ» »ç¿ëÇÏÁö ¾Ê°Ô µÇ°í ÆÛÆ÷¸Õ½º°¡
Çâ»óµÈ´Ù.
-
±ä Å°¸¦ »ç¿ëÇϱ⠺¸´Ù´Â ÀÀ¿ëÇÁ·Î±×·¥ ¼öÁØ¿¡¼ ÇؽõÈ
°ªÀ» »ç¿ëÇÑ´Ù.
SELECT * FROM table_name WHERE hash=MD5(concat(col1,col2)) AND col_1='constant'
AND col_2='constant';
-
Store BLOB's that you need to access as files in files.
µ¥ÀÌÅͺ£À̽º¿¡´Â ÆÄÀÏÀ̸§¸¸ ÀúÀåÇÑ´Ù.
-
·¹ÄÚµåµéÀÇ Å« ºÎºÐÀ» Áö¿ì´Â °Í º¸´Ù ·¹ÄÚµå Àüü¸¦
Áö¿ì´Â °ÍÀÌ ´õ ºü¸£´Ù.
-
SQLÀÌ ÃæºÐÈ÷ ºü¸£Áö ¾Ê´Ù¸é, µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÏ´Â ´õ ³·Àº
¼öÁØÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¡°ËÇØ º»´Ù.
|
MySQL 3.23À» »ç¿ëÇÒ ¶§ ¾òÀ» ¼ö
ÀÖ´Â ÀÌÁ¡
|
-
MyISAM; À̽ÄÀÌ ¼ö¿ùÇÑ °Å´ë Å×À̺í À¯Çü
-
HEAP; ¸Þ¸ð¸® »óÀÇ Å×À̺í
-
Berkeley DB; Sleepycat¿¡¼ Á¦°øÇÏ´Â Æ®·¢Àé¼ÇÀÌ °¡´ÉÇÑ
Å×À̺í
-
´ëÆø È®´ëµÈ(Ç®¸°) Á¦Çѵé
-
µ¿Àû ¹®ÀÚ¼Â
-
´õ ¸¹ÀÌ Á¦°øµÇ´Â STATUS º¯¼öµé
-
CHECK table, REPAIR table
-
´õ ºü¸¥ GROUP BY Àý°ú DISTINCT Àý
-
ÃÖÀûÈµÈ LEFT JOIN ... IF NULL
-
CREATE TABLE ... SELECT
-
CREATE TEMPORARY table_name (...)
-
ÀÓ½ÃÀûÀÎ HEAP¿¡¼ MyISAM Å×À̺í·ÎÀÇ ÀÚµ¿ º¯È¯
-
¸®Çø®ÄÉÀ̼Ç
-
mysqlhotcopy ½ºÅ©¸³Æ®
|
½ÇÁ¦ ÀÛ¾÷¿¡¼ Áß¿äÇÑ ±â´Éµé
|
-
Áøº¸µÈ Æ®·£Àè¼Ç
-
¿À·ù·ÎºÎÅÍ ¾ÈÀüÇÑ ¸®Çø®ÄÉÀ̼Ç
-
ÅؽºÆ® °Ë»ö
-
¸¹Àº Å×À̺íÀÇ »èÁ¦ (ÀÌ ÀÛ¾÷ ÈÄ¿¡ ¸¹Àº Å×À̺íÀÇ °»½ÅÀÌ
ÀÌ·ç¾îÁø´Ù.)
-
³Ê ³ªÀº Å° ij½Ã
-
¿øÀÚÈµÈ RENAME (RENAME TABLE foo as foo_old, foo_new
as foo)
-
Äõ¸® ij½Ã
-
MERGE TABLES
-
Çâ»óµÈ GUI Ŭ¶óÀ̾ðÆ®
|