Oracle/MySQL °ü·Ã °Ô½ÃÆÇ

2002/08/06(17:51) from 61.80.99.240
ÀÛ¼ºÀÚ : °­ÁÙ±â (jkkang65@hanmail.net) Á¶È¸¼ö : 4210 , ÁÙ¼ö : 698
Re: [MySQL] MySQL ¼º´É Çâ»ó ¹æ¹ý - 1
Á¦  ¸ñ:[¹ø¿ª/mysql]10.1-10.4 mysql ¼º´ÉÇâ»ó¹æ¹ý        °ü·ÃÀÚ·á:¾øÀ½  [163]
º¸³½ÀÌ:¹®ÅÂÁØ  (taejun  )  1999-01-27 00:37  Á¶È¸:842
**Àú¹ø 9Àå¿¡ À̾î 10Àå ¶ÇÇÑ mysqlÀÇ ¼º´É Ç⼧¿¡ ´ëÇÑ ³»¿ëÀÔ´Ï´Ù.
Á»´õ ³ªÀº ¼º´É°ú ¼Óµµ¸¦ ¹Ù¶ó´Â ºÐµéÀº Âü°íÇÏ¸é µµ¿òÀÌ ¸¹ÀÌ µÉ µí.
´Ü ÀúÈñ ¿À¿ªÀ¸·Î ÀÎÇÑ Ã¥ÀÓÀº ÀÌ ±ÛÀ» º¸´Â ºÐµé¿¡°Ô ÀÖ½À´Ï´Ù.
±×³É ´ëÃæ ÀÐ´Â°Ç »ó°ü¾ø´Âµ¥ ¹ø¿ªÀ» ÇÏ·Á´Ï Á» ¸Ó¸®°¡ ¾ÆÇÁ±º¿ä.
10ÀåÀ» ´Ù Çؼ­ ¿Ã¸®·Á°í ÇßÁö¸¸ Á¹·Á¼­ À̸¸ Àھ߰ڽÀ´Ï´Ù.
±×·¡µµ À̳ª¸¶ ¿Ã·Á¾ßÁö °è¼Ó ±ÛÀ» ¿Ã·Á¾ß°Ú´Ù´Â »ý°¢À» ÇÏ°Ô µÉ °Í
°°¾Æ Á¶±Ý¾¿ Å丷³»¾î ¿Ã¸³´Ï´Ù.

±×¸®°í °³ÀÎÀûÀÎ Áú¹®Àº °Ô½ÃÆÇ¿¡¼­ ÇØ ÁÖ¸é °í¸¿°Ú½À´Ï´Ù.

                               ¹® ÅÂ ÁØ (taejun@hitel.net)

10. mysqlÀÇ ÃÖ´ë ¼º´É Çâ»ó ¹æ¹ý

10.1 ¹öÆÛ Å©±â Á¶Á¤
mysqld ¼­¹ö°¡ »ç¿ëÇÏ´Â ±âº» ¹öÆÛ Å©±â´Â ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¾Ë ¼ö ÀÖ´Ù.

shell> mysqld --help

ÀÌ ¸í·ÉÀº ¸ðµç mysqld ¿É¼ÇÀÇ ¸ñ·Ï°ú ¼³Á¤ º¯¼ö¸¦ º¸¿©ÁØ´Ù. Ãâ·ÂµÇ´Â ³»¿ëÀº
±âº»°ªÀ» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç ´ÙÀ½°ú ºñ½ÁÇÏ´Ù.

Possible variables for option --set-variable (-O) are:
back_log              current value: 5
connect_timeout       current value: 5
join_buffer           current value: 131072
key_buffer            current value: 1048540
long_query_time       current value: 10
max_allowed_packet    current value: 1048576
max_connections       current value: 90
max_connect_errors    current value: 10
max_join_size         current value: 4294967295
max_sort_length       current value: 1024
net_buffer_length     current value: 16384
record_buffer         current value: 131072
sort_buffer           current value: 2097116
table_cache           current value: 64
tmp_table_size        current value: 1048576
thread_stack          current value: 131072
wait_timeout          current value: 28800

mysqld ¼­¹ö°¡ ÇöÀç °¡µ¿ÁßÀÌ¸é ´ÙÀ½ÀÇ ¸í·ÉÀ» ÅëÇØ ½ÇÁ¦ º¯¼ö°ªÀ» º¼ ¼ö ÀÖ´Ù.

shell> mysqladmin variables

°¢ ¿É¼ÇÀº ¹Ø¿¡¼­ ¼³¸íÇÑ´Ù. ¹öÆÛ?Å©±â, ±æÀÌ, ½ºÅà ũ±â´Â ¹ÙÀÌÆ®ÀÌ´Ù.
'K'(ų·Î¹ÙÀÌÆ®) ³ª 'M'(¸Þ°¡¹ÙÀÌÆ®)¸¦ ¾Õ¿¡ ºÙ¿© °ªÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¿¹¸¦ µé¸é 16M´Â 16 ¸Þ°¡¹ÙÀÌÆ®¸¦ °¡¸®Å²´Ù. ´ë¼Ò¹®ÀÚ´Â ±¸º°ÇÏÁö ¾Ê´Â´Ù.
16M ¿Í 16mÀº °°´Ù.¤Ã

-back_log
mysqlÀÌ °¡Áú ¼ö ÀÖ´Â ÃÖ´ë ¿¬°á ¿äûÀÇ ¼ö. ÀÌ°ÍÀº main mysql ½º·¹µå°¡ ¸Å¿ì ªÀº
½Ã°£µ¿¾È ¸Å¿ì ¸¹Àº ¿¬°á ¿äûÀ» ¹ÞÀ» ¶§ ±â´ÉÀ» ÇÑ´Ù. À̶§ ¸ÞÀÎ ½º·¹µå°¡ ¿¬°áÀ»
üũÇÏ°í »õ·Î¿î ½º·¹µå¸¦ ½ÃÀÛÇϴµ¥´Â ¾à°£ÀÇ ½Ã°£ÀÌ °É¸°´Ù.(±×·¯³ª ¾ÆÁÖ ÂªÀº
½Ã°£ÀÓ) back_log °ªÀº mysqlÀÌ ¼ø°£ÀûÀ¸·Î »õ·Î¿î ¿äû¿¡ ´äÇÏ´Â °ÍÀ» ¸ØÃß±âÀü¿¡
ÀÌ ÂªÀº ½Ã°£µ¿¾È ¾ó¸¶³ª ¸¹Àº ¿äûÀ» ½×¾ÆµÎ°í ÀÖ´ÂÁö¸¦ ÁöÁ¤ÇÑ´Ù. ¸Å¿ì ªÀº ½Ã°£
µ¿¾È ¸Å¿ì ¸¹Àº ¿¬°áÀÌ ¿¹»óµÉ¶§¸¸ ÀÌ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù.

´Ù¸¥ ¸»·Î ÀÌ °ªÀº tcp/ip ¿¬°áÀ» ¹Þ´Â listen queueÀÇ Å©±âÀÌ´Ù. °¢ ¿î¿µÃ¼Á¦¸¶´Ù
ÀÌ·¯ÇÑ Å¥ÀÇ Å©±â¿¡ ÇÑ°è°¡ ÀÖ´Ù. Unix system call listen(2) ¸Å´º¾ó ÆäÀÌÁö¿¡
ÀÚ¼¼ÇÑ Á¤º¸°¡ ÀÖ´Ù.
back_log°ªÀÇ ÇÑ°è´Â ¿î¿µÃ¼Á¦ ¹®¼­¸¦ È®ÀÎÇغÁ¶ó. back_log¸¦ ÃÖ´ë°ªº¸´Ù ´õ ³ô¿©µµ
È¿°ú°¡ ¾ø´Ù.

-connect_timeout
Bad handshake¿¡ ¹ÝÀÀÇϱâ Àü¿¡ ¿¬°á ÆÐŶÀ» mysql ¼­¹ö¿¡¼­ ±â´Ù¸®´Â ½Ã°£.(ÃÊ)

-join_buffer
(À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â Á¶ÀÎÀÇ) full-join¿¡¼­ »ç¿ëÇÏ´Â ¹öÆÛÀÇ Å©±â.
¹öÆÛ´Â µÎ Å×ÀÌºí »çÀÌ¿¡¼­ °¢ full-join¸¶´Ù Çѹø ÇÒ´çÀÌ µÈ´Ù. À妽ÌÀ» Ãß°¡ÇÏÁö
¸øÇÒ ¶§ Á¶ÀÎ ¹öÆÛ¸¦ Áõ°¡½ÃÅ°¸é full joinÀÇ ¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù.
(ÀϹÝÀûÀ¸·Î ºü¸£°Ô Á¶ÀÎÀ» ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀº À妽º¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù)

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

-max_allowed_packet
ÇÑ ÆÐŶÀÇ ÃÖ´ë Å©±â. ¸Þ½ÃÁö ¹öÆÛ´Â net_buffer_length ¹ÙÀÌÆ®·Î ÃʱâÈ­µÇÁö¸¸
ÇÊ¿äÇϸé ÃÖ´ë Çã¿ë ÆÐŶ ¹ÙÀÌÆ®¸¦ Áõ°¡½Ãų ¼ö ÀÖ´Ù.±âº»°ªÀº Å« ÆÐŶÀ» Àâ±â¿¡´Â
ÀÛ´Ù. °Å´ë BLOB Ä÷³À» »ç¿ëÇÑ´Ù¸é °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù. »ç¿ëÀÚ°¡ ¿øÇÏ´Â
ÃÖ´ë blob¸¸Å­ Å©°Ô  ÇØ¾ß ÇÑ´Ù.

-max_connections
µ¿½Ã Ŭ¶óÀ̾ðÆ® ¼ýÀÚ. mysqld°¡ ÇÊ¿ä·ÎÇÏ´Â ÆÄÀÏ Áö½ÃÀÚ(descriptor)ÀÇ ¼ýÀÚ¸¸Å­
°ªÀ» ´Ã·Á¾ß ÇÑ´Ù. ¹Ø¿¡¼­ ÆÄÀÏ µð½ºÅ©¸³ÅÍ Á¦ÇÑ¿¡ ´ëÇÑ ³»¿ëÀ» Âü°íÇÏÀÚ.

-max_connect_errors
È£½ºÆ®¿¡¼­ ÃÖ´ë ¿¬°á ¿¡·¯ÀÌ»óÀÇ interrupted ¿¬°áÀÌ ÀÖÀ¸¸é ´õ ¸¹Àº ¿¬°áÀ» À§ÇØ
È£½ºÆ®´Â blockÈ­µÈ´Ù. FLUSH HOSTS ¸í·ÉÀ¸·Î È£½ºÆ®ÀÇ blockÀ» ÇØÁ¦ÇÒ ¼ö ÀÖ´Ù.  

-max_join_size
ÃÖ´ë Á¶ÀÎ Å©±âÀÌ»óÀ¸·Î ·¹Å©µµ¸¦ Àд Á¶ÀÎÀ» ÇÏ¸é ¿¡·¯°¡ ³­´Ù. ¸¸¾à »ç¿ëÀÚ°¡
where ¹®À» »ç¿ëÇÏÁö ¾Ê°í ½Ã°£ÀÌ ¸¹ÀÌ °É¸®¸é¼­ ¸î¹é¸¸°³ÀÇ ·¹Äڵ带 Àд Á¶ÀÎÀ»
¼öÇàÇÏ·Á Çϸé ÀÌ °ªÀ» ¼³Á¤ÇÑ´Ù.

-max_sort_length
BLOB³ª TEXT °ªÀ¸·Î Á¤¿­ÇÒ¶§ »ç¿ëÇÏ´Â ¹ÙÀÌÆ®ÀÇ ¼ýÀÚ.
(°¢ °ªÁß ¿ÀÁ÷ ù¹ø° max_sort_length ¹ÙÀÌÆ®¸¸ »ç¿ëµÈ´Ù. ³ª¸ÓÁö´Â ¹«½ÃµÈ´Ù)

-net_buffer_length
ÁúÀÇ¿¡¼­ Åë½Å ¹öÆÛ°¡ ÃʱâÈ­µÇ´Â Å©±â. ÀϹÝÀûÀ¸·Î ¹Ù²îÁö ¾ÊÁö¸¸ ¸Å¿ì ÀûÀº
¸Þ¸ð¸®¸¦ °¡Áö°í ÀÖÀ» ¶§ ¿¹»óµÇ´Â ÁúÀÇ¿¡ ¸Â°Ô ¼¼ÆÃÇÒ ¼ö ÀÖ´Ù.
(ÀÌ°ÍÀº Ŭ¶óÀ̾ðÆ®¿¡ °¡´Â ¿¹»óµÈ sql ¹®ÀÇ ±æÀÌÀÌ´Ù. ÁúÀǹ®ÀÌ ÀÌ Å©±â¸¦
³ÑÀ¸¸é ¹öÆÛ´Â ÀÚµ¿À¸·Î max_allowed_packet ¹ÙÀÌÆ®±îÁö Áõ°¡ÇÑ´Ù)

-record_buffer
¼øÂ÷ÀûÀÎ °Ë»öÀ» ÇÏ´Â °¢ ½º·¹µå¿¡¼­ °¢ °Ë»ö Å×ÀÌºí¿¡ ÇÒ´çÇÏ´Â ¹öÆÛ Å©±â.
¼øÂ÷ÀûÀÎ °Ë»öÀ» ¸¹ÀÌ Çϸé ÀÌ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù.

-sort_buffer
Á¤·ÄÀÌ ÇÊ¿äÇÑ °¢ ½º·¹µå¿¡¼­ ÇÒ´çÇÏ´Â ¹öÆÛ Å©±â. order by ³ª group by
¿ÀÆÛ·¹À̼ÇÀ» ºü¸£°Ô ÇÏ·Á¸é ÀÌ °ªÀ» Áõ°¡½ÃŲ´Ù. 16.4 [Àӽà ÆÄÀÏ] Âü°í.

-table_cache
¸ðµç ½º·¹µå¿¡¼­ ¿­ ¼ö ÀÖ´Â Å×À̺íÀÇ ¼ýÀÚ. mysqld°¡ ÇÊ¿ä·Î ÇÏ´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍ
ÀÇ
¼ýÀÚ¸¸Å­ ÀÌ °ªÀ» Áõ°¡½ÃÄѶó. mysqlÀº °¢ À¯ÀÏÇÑ ¿ÀÇ Å×ÀÌºí¿¡¼­ µÎ°³ÀÇ ÆÄÀÏ
µð½ºÅ©¸³ÅÍ°¡ ÇÊ¿äÇÏ´Ù. ÆÄÀÏ µð½ºÅ©¸³ÅÍ Á¦ÇÑÀ»  Âü°íÇÑ´Ù. Å×À̺í ij½¬°¡
¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö´Â 10.6 [Å×À̺í ij½¬]¸¦ Âü°íÇÑ´Ù.

-tmp_table_size
Àӽà Å×À̺íÀÌ ÀÌ °ªÀ» ³ÑÀ¸¸é mysqlÀº "The Table tbl_name is full"À̶ó´Â ¿¡·¯
¸Þ½ÃÁö¸¦ ³½´Ù. ¸Å¿ì ¸¹Àº group by ÁúÀǸ¦ »ç¿ëÇϸé ÀÌ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù.

-thread_stack
°¢ ½º·¹µåÀÇ ½ºÅà »çÀÌÁî. creash-me test(**¿ªÀÚÁÖ : µ¥ÀÌÅͺ£À̽ºÀÇ º¥Ä¡¸¶Å·À»
ÇÏ´Â Å×½ºÆ®ÀÔ´Ï´Ù. ¸»±×´ë·Î µ¥ÀÌÅͺ£À̽º¸¦ Á׿©ÁÖÁö¿ä) ¿¡¼­ ÀâÈ÷´Â ¸¹Àº
Á¦ÇÑÀº ÀÌ °ª¿¡ ´Þ·ÁÀÖ´Ù. ±âº»°ªÀº ÀϹÝÀûÀ¸·Î ÃæºÐÈ÷ Å©´Ù. 11ÀåÀÇ [º¥Ä¡¸¶Å©]
ÂüÁ¶

-wait_timeout
¿¬°áÀ» ²÷±âÀü¿¡ ¿¬°á È°µ¿(activity)À» ¼­¹ö¿¡¼­ ±â´Ù¸®´Â ½Ã°£(ÃÊ).

table_cache ¿Í max_connections´Â ¼­¹ö°¡ ¿­ ¼ö ÀÖ´Â ÃÖ´ë ÆÄÀÏ °¹¼ö¿¡ ¿µÇâÀ»
¹ÌÄ£´Ù. ÀÌ °ªÀ» Áõ°¡½ÃÅ°¸é ¿î¿µ½Ã½ºÅÛ¿¡¼­ ¿ÀÇ ÆÄÀÏ µð½ºÅ©¸³ÅÍÀÇ per-process
¼ýÀÚÀÇ ÇÑ°è±îÁö ¿Ã¸± ¼ö ÀÖ´Ù.
(** ... imposed by your operating system on the per-process number of
open file descriptors. ¹ø¿ªÀÌ ÀÌ»óÇϹǷΠ¿µ¹® Âü°í)
±×·¯³ª ¸¹Àº ½Ã½ºÅÛ¿¡¼­ ÀÌ ÇѰ踦 Áõ°¡½Ãų¼ö
ÀÖ´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é °¢ ½Ã½ºÅÛ¿¡¼­ ÀÌ ÇѰ踦 º¯È­½ÃÅ°´Â ¹æ¹ýÀÌ ¸Å¿ì ´Ù¾çÇϹǷÎ
¿î¿µÃ¼Á¦ ¹®¼­¸¦ Âü°íÇØ¾ß ÇÑ´Ù.  

table_cache ´Â max_connections ¿Í °ü°è°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é 200°³ÀÇ ¿¬°áÀÌ ÀÖ
À¸¸é ÃÖ¼Ò 200 * n ÀÇ Å×À̺í ij½¬¸¦ °¡Á®¾ß ÇÑ´Ù. ¿©±â¼­ nÀº Á¶Àο¡¼­ Å×À̺íÀÇ
ÃÖ´ë ¼ýÀÚÀÌ´Ù.

mysqlÀº ¸Å¿ì À¯¿ëÇÑ ¾Ë°í¸®ÁòÀ» »ç¿ëÇϱ⠶§¹®¿¡ ÀϹÝÀûÀ¸·Î´Â ¸Å¿ì ÀûÀº
¸Þ¸ð¸®·Î »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ¸Þ¸ð¸®°¡ ¸¹À» ¼ö·Ï ¼º´ÉÀÌ ´õ ¸¹ÀÌ Çâ»óµÈ´Ù.

¸¹Àº ¸Þ¸ð¸®¿Í ¸¹Àº Å×À̺íÀ» °¡Á³°í Áß°£Á¤µµ ¼ýÀÚÀÇ Å¬¶óÀ̾ðÆ®¿¡¼­ ÃÖ´ëÀÇ ¼º´ÉÀ»
¿øÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.

shell> safe_mysqld -O key_buffer=16M -O table_cache=128 \
          -O sort_buffer=4M -O record_buffer=1M &

¸Þ¸ð¸®°¡ Àû°í ¿¬°áÀÌ ¸¹À¸¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.

shell> safe_mysqld -O key_buffer=512k -O sort_buffer=100k \
          -O record_buffer=100k &

¶Ç´Â:

shell> safe_mysqld -O key_buffer=512k -O sort_buffer=16k \
          -O table_cache=32 -O record_buffer=8k -O net_buffer=1K &

¸Å¿ì ¸¹Àº ¿¬°áÀÌ ÀÖÀ» ¶§ mysqld°¡ °¢ ¿¬°á¸¶´Ù ÃÖ¼ÒÇÑÀÇ ¸Þ¸ð¸®¸¦ »ç¿ëÇϵµ·Ï
¼³Á¤ÇÏÁö ¾Ê¾Ò´Ù¸é "swapping problems" ¹®Á¦°¡ »ý±æ °ÍÀÌ´Ù.

mysqld¿¡¼­ ¿É¼ÇÀ» ¹Ù²Ù¾úÀ¸¸é ±×°ÍÀº ¼­¹öÀÇ ÇØ´çÇÏ´Â ÀνºÅϽº¿¡¸¸ ¿µÇâÀ»
¹ÌÄ£´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.

¿É¼ÇÀ» ¹Ù²Ù¾úÀ»¶§ÀÇ È¿°ú¸¦ º¸±â À§ÇØ ´ÙÀ½°ú °°ÀÌ Çغ¸ÀÚ.

shell> mysqld -O key_buffer=32m --help

¸¶Áö¸·¿¡ --help ¿É¼ÇÀÌ µé¾î°£ °ÍÀ» ±â¾ïÇÏÀÚ. ±×·¸Áö ¾ÊÀ¸¸é Ä¿¸Çµå ¶óÀο¡¼­
»ç¿ëÇÑ ¿É¼ÇÀÇ È¿·ÂÀº Ãâ·Â¿¡´Â ¹Ý¿µµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.


10.2 ¸Þ¸ð¸® »ç¿ë ¹æ¹ý <¸Þ¸ð¸® ÃÖÀûÈ­>

¾Æ·¡¿¡¼­ ¼³¸íÇÏ´Â ¸ñ·ÏÀº mysqld ¼­¹ö°¡ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­
³ªÅ¸³»°í ÀÖ´Ù. ¸Þ¸ð¸® »ç¿ë°ú °ü·ÃµÈ ¼­¹öÀÇ º¯¼ö À̸§ÀÌ ÁÖ¾îÁø´Ù.


- Å° ¹öÆÛ(º¯¼ö key_buffer)´Â ¸ðµç ½º·¹µå¿¡¼­ °øÀ¯ÇÑ´Ù. ¼­¹ö¿¡¼­ »ç¿ëÇÏ´Â
´Ù¸¥ ¹öÆÛ´Â ÇÊ¿äÇÑ´ë·Î ÇÒ´çÀÌ µÈ´Ù.

- °¢ ¿¬°áÀº °¢ ½º·¹µå¸¶´ÙÀÇ Æ¯Á¤ÇÑ °ø°£À» »ç¿ëÇÑ´Ù. ½ºÅÃ(64k,
º¯¼ö thread_stack) , ¿¬°á ¹öÆÛ(º¯¼ö net_buffer_length), result ¹öÆÛ
(º¯¼ö net_buffer_length) µî. ¿¬°á ¹öÆÛ¿Í result ¹öÆÛ´Â ÇÊ¿äÇÒ¶§
max_allowed_packet ±îÁö µ¿ÀûÀ¸·Î Áõ°¡µÈ´Ù. ÁúÀÇ°¡ ¼öÇàµÉ ¶§ ÇöÀçÀÇ
ÁúÀǹ®ÀÇ º¹»ç¹®ÀÌ ¶ÇÇÑ ÇÒ´çÀÌ µÈ´Ù.
(** When a query is running a copy of the current query string is
also alloced.)

- ¸ðµç ½º·¹µå´Â °°Àº ±âº» ¸Þ¸ð¸®¸¦ °øÀ¯ÇÑ´Ù.
- ¸Þ¸ð¸® ¸ÊÀº ¾ÆÁ÷ Áö¿øÀÌ ¾ÈµÈ´Ù. (¾ÐÃà Å×À̺íÀ» Á¦¿ÜÇÏ°í. ±×·¯³ª ÀÌ°ÍÀº
´Ù¸¥ À̾߱âÀÌ´Ù) ¿Ö³ÄÇϸé 4GBÀÇ 32ºñÆ® ¸Þ¸ð¸® °ø°£Àº ´ëºÎºÐÀÇ ´ëÇü
Å×ÀÌºí¿¡¼­ ÃæºÐÈ÷ Å©±â°¡ ¾Ê±â ¶§¹®ÀÌ´Ù. ¿ì¸®°¡ 64ºñÆ® ÁÖ¼Ò °ø°£À»°¡Áø
½Ã½ºÅÛÀ» °¡Áö°Ô µÉ ¶§ ¿ì¸®´Â ¸Þ¸ð¸® ¸ÊÇÎÀ» À§ÇÑ ÀϹÝÀûÀÎ Áö¿øÀ»
Ãß°¡ÇÒ °ÍÀÌ´Ù.

- Å×ÀÌºí¿¡¼­ ¼øÂ÷ÀûÀÎ °Ë»öÀ» ÇÏ´Â °¢ ¿äûÀº read ¹öÆÛ¿¡ ÇÒ´çÀÌ µÈ´Ù.
(º¯¼ö record_buffer)

- ¸ðµç Á¶ÀÎÀº Çѹø¿¡ ¼öÇàÀÌ µÇ¸ç ´ëºÎºÐÀÇ Á¶ÀÎÀº Àӽà Å×À̺íÀ» »ý¼ºÇÏÁö
¾Ê°í ¼öÇàÀÌ µÈ´Ù. ´ëºÎºÐÀÇ Å×À̺íÀº ¸Þ¸ð¸® ±â¹Ý(HEAP) Å×À̺íÀÌ´Ù.
°Å´ë ±æÀÌÀÇ ·¹Äڵ带 °¡Á³°Å³ª BLOB Ä÷³À» Æ÷ÇÔÇÑ Àӽà Å×À̺íÀº µð½ºÅ©¿¡
ÀúÀåÀÌ µÈ´Ù. ÇöÀçÀÇ ¹®Á¦´Â ¸Þ¸ð¸® ±â¹Ý Å×À̺íÀÌ tmp_table_size¸¦ ÃÊ°úÇß
À»¶§ "The table tbl_name is full"À̶ó´Â ¿¡·¯°¡ »ý±â´Â °ÍÀÌ´Ù. °¡±î¿î ½Ã
ÀϾȿ¡ ÇÊ¿äÇÒ¶§ ÀÚµ¿ÀûÀ¸·Î ¸Þ¸ð¸® ±â¹Ý(HEAP) Å×À̺íÀ» µð½ºÅ© ±â¹Ý(NISAM)
Å×À̺í·Î ¹Ù²Ùµµ·Ï °íÄ¥ °ÍÀÌ´Ù.
ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ mysqldÀÇ tmp_table_size ¿É¼ÇÀ» ¼³Á¤ÇÏ¿© ÀÓ½Ã
Å×À̺í Å©±â¸¦ ´ÃÀ̰ųª Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥¿¡¼­ SQL_BIG_TABLES¶ó´Â sql ¿É¼ÇÀ»
¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. 7.24 SET OPTION À» Âü°íÇÏÀÚ.
mysql 3.20¿¡¼­ Àӽà Å×À̺íÀÇ ÃÖ´ë Å©±â´Â record_buffer*16ÀÌ´Ù. 3.20 ¹öÀüÀ»
»ç¿ëÇÏ°í ÀÖ´Ù¸é record_bufferÀÇ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù. ¶ÇÇÑ mysqld¸¦ ½ÃÀÛÇÒ
¶§ --big-tables ¿É¼ÇÀ» »ç¿ëÇÏ¿© Ç×»ó Àӽà Å×À̺íÀ» µð½ºÅ©¿¡ ÀúÀåÇÒ ¼ö ÀÖ
Áö¸¸ ÁúÀÇ ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù.

- Á¤¿­À» ÇÏ´Â ´ëºÎºÐÀÇ ¿äûÀº Á¤·Ä ¹öÆÛ¿Í Çϳª³ª µÎ°³ÀÇ Àӽà ÆÄÀÏÀ» ÇÒ´çÇÑ´Ù.
16.4ÀÇ [Àӽà ÆÄÀÏ]À» Âü°íÇÑ´Ù.

- ´ëºÎºÐÀÇ ÆÄ¡(parsing)°ú °è»êÀº Áö¿ª ¸Þ¸ð¸®¿¡¼­ ÀÌ·ç¾îÁø´Ù. ÀÛÀº ¾ÆÀÌÅÛ¿¡´Â
¸Þ¸ð¸® overhead°¡ ÇÊ¿ä¾ø°í ÀϹÝÀûÀÎ ´À¸° ¸Þ¸ð¸® ÇÒ´ç(slow memory allocation)
°ú freeing(¸Þ¸ð¸® ÇØÁ¦)´Â ¹«½ÃµÈ´Ù. ¸Þ¸ð¸®´Â ¿ÀÁ÷ ¿¹»óÁö ¸øÇÑ °Å´ë ¹®ÀÚ¿­¿¡¼­
ÇÒ´çÀÌ µÈ´Ù.( mallloc() °ú free() »ç¿ë)

- °¢ À妽º ÆÄÀÏÀº Çѹø¿¡ ¿­¸®¸ç °¢ º´Çà¼öÇàµÇ´Â ½º·¹µå¿¡¼­ µ¥ÀÌÅÍ ÆÄÀÏÀº Çѹø
¿¡
¿­¸°´Ù. °¢ º´Çà¼öÇà ½º·¹µå¸¶´Ù Å×ÀÌºí ±¸Á¶, °¢ Ä÷³ÀÇ Ä÷³ ±¸Á¶, 3 * n ÀÇ ¹öÆÛ
Å©±â°¡ ÇÒ´çµÈ´Ù. ( nÀº ÃÖ´ë ·¹ÄÚµå ±æÀÌÀ̸ç BLOB Ä÷³Àº ÇØ´çÇÏÁö ¾Ê´Â´Ù) BLOB´Â
BLOB µ¥ÀÌÅÍÀÇ ±æÀÌ¿¡ 5¿¡¼­ 8 ¹ÙÀÌÆ®¸¦ ´õÇÑ °ªÀ» »ç¿ëÇÑ´Ù.  

- BLOB Ä÷³À» °¡Áø °¢ Å×ÀÌºí¿¡¼­ ¹öÆÛ´Â °Å´ë BLOB °ªÀ» ÀÐÀ» ¼ö ÀÖµµ·Ï µ¿ÀûÀ¸·Î
Ä¿Áø´Ù. Å×À̺íÀ» °Ë»öÇÏ¸é ¹öÆÛ´Â ÃÖ´ë BLOBÀÇ °ª¸¸Å­ ¹öÆÛ°¡ ÇÒ´çÀÌ µÈ´Ù.

- ¸ðµç »ç¿ëÁßÀÎ Å×À̺íÀÇ Å×À̺í Çڵ鷯´Â ij½¬¿¡ ÀúÀåµÇ¸ç FIFO·Î °ü¸®°¡ µÈ´Ù.
ÀϹÝÀûÀ¸·Î ij½¬´Â 64 ¿£Æ®¸®¸¦ °®´Â´Ù. µ¿½Ã¿¡ µÎ°³ÀÇ ½ÇÇà ½º·¹µå¿¡¼­ Å×À̺íÀ»
»ç¿ëÇϸé ij½¬´Â Å×À̺íÀÇ µÎ ¿£Æ®¸®¸¦ Æ÷ÇÔÇÑ´Ù. 10.6 [Å×À̺í ij½¬]¸¦ Âü°íÇÑ´Ù.

- mysqladmin flush-tables ¸í·ÉÀº »ç¿ëÇÏÁö ¾Ê´Â ¸ðµç Å×À̺íÀ» ´Ý°í ÇöÀç ½ÇÇàµÇ´Â
½º·¹µå°¡ ³¡³¯ ¶§ ¸ðµç »ç¿ëÁßÀÎ Å×À̺íÀ» ´Ý´Â´Ù°í Ç¥½ÃÇÑ´Ù. ÀÌ°ÍÀº È¿°úÀûÀ¸·Î
»ç¿ëÁßÀÎ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù.


ps ¿Í ´Ù¸¥ ½Ã½ºÅÛ »óȲ ÇÁ·Î±×·¥Àº mysqld°¡ ¸¹Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ°í ÀÖ´Ù°í º¸°íÇÒ
°ÍÀÌ´Ù. ÀÌ°ÍÀº ´Ù¸¥ ¸Þ¸ð¸® ÁÖ¼ÒÀÇ ½º·¹µå-½ºÅö§¹®¿¡ »ý±ä´Ù. ¿¹¸¦ µé¸é ¼Ö¶ó¸®½º
ÀÇ
ps ´Â ½ºÅûçÀÌÀÇ »ç¿ëÇÏÁö ¾Ê´Â ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â ¸Þ¸ð¸®·Î °£ÁÖÇÑ´Ù. ÀÌ°ÍÀº
swap -s¸¦ ÀÌ¿ë »ç¿ë°¡´ÉÇÑ ½º¿ÒÀ» üũÇÏ¿© È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¿ì¸®´Â mysqld¸¦ »ó¿ë
¸Þ¸ð¸® À¯Ãâ ÃøÁ¤ ÇÁ·Î±×·¥À¸·Î Å×½ºÆÃÇؼ­ mysqld¿¡´Â ¸Þ¸ð¸® À¯ÃâÀÌ ¾ø´Ù.


10.3 ¼Óµµ Çâ»ó¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÄÄÆÄÀÏ/¸µÅ© ¹æ¹ý <ÄÄÆÄÀϽà ÃÖÀûÈ­Çϱâ>

´ÙÀ½ Å×½ºÆ®ÀÇ ´ëºÎºÐÀº ¸®´ª½º¿Í mysql º¥Ä¡¸¶Å©¸¦ °¡Áö°í ¼öÇàµÇ¾úÁö¸¸ ´Ù¸¥ ¿î¿µ
½Ã½ºÅÛ¿¡µµ ¾Ï½ÃÇØÁÖ´Â °ÍÀÌ ÀÖ´Ù.

staticÀ¸·Î ¸µÅ©¸¦ ÇÒ¶§ °¡Àå ºü¸¥ ½ÇÇà ¼Óµµ¸¦ ¾òÀ» ¼ö ÀÖ´Ù. µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°á
Çϱâ À§ÇØ TCP/IPº¸´Ù´Â À¯´Ð½º ¼ÒÄÏÀ» »ç¿ëÇÏ¸é ´õ ÁÁÀº ¼º´ÉÀ» ³¾ ¼ö ÀÖ´Ù.

¸®´ª½º¿¡¼­ pgcc¿Í -O6À» »ç¿ëÇÏ¸é °¡Àå ºü¸£´Ù. 'sql_yacc.cc'¸¦ ÀÌ ¿É¼ÇÀ¸·Î ÄÄÆÄ
ÀÏ
ÇÏ·Á¸é gcc/pgcc´Â ¸ðµç ¼º´ÉÀ» ³»±â À§ÇØ ¸¹Àº ¸Þ¸ð¸®°¡ ÇÊ¿äÇϱ⠶§¹®¿¡ 180MÀÇ ¸Þ
¸ð¸®°¡ ÇÊ¿äÇÏ´Ù. ¶ÇÇÑ mysqlÀ» ¼³Á¤ÇÒ¶§ libstdc++ ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇÏÁö ¾Ê±â À§
ÇØ
CXX=gcc¶ó°í ¼³Á¤ÇØ¾ß ÇÑ´Ù.

- pgcc¸¦ »ç¿ëÇÏ°í ¸ðµÎ´Ù -O6 ¿É¼ÇÀ¸·Î ÄÄÆÄÀÏÇϸé mysqld ¼­¹ö´Â gcc·Î ÄÄÆÄÀÏÇÑ
°Íº¸´Ù 11% »¡¶óÁø´Ù.

- µ¿ÀûÀ¸·Î ¸µÅ©Çϸé (-staticÀ» »ç¿ëÇÏÁö ¾Ê°í) 13% ´À·ÁÁø´Ù.
   If you connect using TCP/IP rather than Unix sockets, the result is 7.5% sl
ower.
- À¯´Ð½º ¼ÒÄÏÀ» »ç¿ëÇÏ´Â °Íº¸´Ù tcp/ip·Î ¿¬°áÇÏ´Â °ÍÀÌ 7.5% ´À·ÁÁø´Ù.

- On a Sun sparcstation 10, gcc 2.7.3 is 13% faster than Sun Pro C++ 4.2.
- On Solaris 2.5.1, MIT-pthreads is 8-12% slower than Solaris native threads.
(** ¹ø¿ªÀ» ¾ÈÇÑ ÀÌÈÄ. ¸®´ª½º¶û »ó°ü¾øÀ¸´Ï±ñ... **)

TcX¿¡¼­ Á¦°øÇÑ mysql ¸®´ª½º ¹èÆ÷ÆÇÀº pgcc·Î ÄÄÆÄÀϵǾú°í Á¤ÀûÀ¸·Î ¸µÅ©µÇ¾ú´Ù.


10.4 How MySQL uses indexes

prefix- and end-space compressed. See section 7.26 CREATE INDEX syntax (Compati
bility
function).

¸ðµç À妽º(PRIMARY, UNIQUE and INDEX()) ´Â B-trees ¿¡ ÀúÀåµÈ´Ù. ¹®ÀÚ¿­Àº ÀÚµ¿
Àû
À¸·Î ¾Õ µÚÀÇ °ø°£(?)ÀÌ ¾ÐÃàµÈ´Ù. 7.26 [À妽º »ý¼º] Âü°í.

À妽ºÀÇ »ç¿ë :
- WHERE ¹®¿¡¼­ ÇØ´çÇÏ´Â ·¹ÄÚµå »¡¸®  Ã£±â
- Á¶ÀÎÀ» ¼öÇàÇÒ¶§ ´Ù¸¥ Å×ÀÌºí¿¡¼­ ·¹ÄÚµå °¡Á®¿À±â
- ƯÁ¤ Å°¿¡¼­ MAX() ³ª MIN() °ª ã±â
- ¼ÒÆÃÀ̳ª ±×·ìÈ­ÇÒ¶§ À妽º Å°¸¦ »ç¿ëÇϸé Å×À̺íÀ» Á¤¿­Çϰųª ±×·ìÈ­ÇÑ´Ù. Å°¿¡
DESC°¡
ºÙÀ¸¸é ¿ª¼øÀ¸·Î À妽º¸¦ Àд´Ù.
- ¾î¶² °æ¿ì¿¡´Â µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ¹¯Áö ¾Ê°í °ªÀ» °¡Á®¿Â´Ù. ¾î¶² Å×ÀÌºí¿¡¼­ »ç¿ëÇÏ´Â
¸ðµç Ä÷³ÀÌ ¼ýÀÚÀÌ°í ƯÁ¤ Å°·Î Çü¼ºµÇ¾îÀÖÀ¸¸é ºü¸¥ ¼Óµµ·Î À妽º Æ®¸®¿¡¼­ °ªÀ»
°¡Á®¿Ã ¼ö ÀÖ´Ù.

´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

mysql> SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;


´ÙÁß Ä÷³ À妽º°¡ col1 °ú col2¿¡ ÀÖÀ¸¸é ÇØ´çÇÏ´Â ·¹Äڵ带 Á÷Á¢ °¡Á®¿Ã ¼ö ÀÖ´Ù.
ºÐ¸®µÈ
´ÜÀÏ Ä÷³ À妽º°¡ col1 °ú col2 ¿¡ ÀÖÀ¸¸é ÃÖÀûÈ­±â´Â ¾î¶² À妽º°¡ ´õ ÀûÀº ·¹ÄÚ
µå¸¦ °¡
Á³´ÂÁö È®ÀÎÇÏ°í ·¹Äڵ带 °¡Á®¿À±â À§ÇØ ±× À妽º¸¦ »ç¿ëÇϵµ·Ï °áÁ¤ÇÑ´Ù.

Å×À̺íÀÌ ´ÙÁß Ä÷³ À妽º¸¦ °¡Á³´Ù¸é ÃÖÀûÈ­±â°¡ ·¹Äڵ带 ã´Âµ¥ ¾î¶² À妽ºÅ°¸¦
»ç¿ëÇÒ
¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é ¼¼°¡Áö Ä÷³ À妽º(col1, col2, col3)¸¦ °¡Á³´Ù¸é (col1), (col
1,col2)
(col1,col2,col3) À妽º¸¦ »ç¿ëÇÏ¿© °Ë»öÀ» ÇÒ ¼ö ÀÖ´Ù.  

MySQL can't use a partial index if the columns don't form a leftmost prefix of
the index.
Suppose you have the SELECT statements shown below:
(** Çؼ®ÀÌ Àß ¾ÈµÇ´Âµ¥ ¿¹Á¦¸¦ º¸½Ã¸é ¹«½¼ ¸»ÀÎÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÓ**)

mysql> SELECT * FROM tbl_name WHERE col1=val1;
mysql> SELECT * FROM tbl_name WHERE col2=val2;
mysql> SELECT * FROM tbl_name WHERE col2=val2 AND col3=val3;

If an index exists on (col1,col2,col3), only the first query shown above uses t
he index. The
second and third queries do involve indexed columns, but (col2) and (col2,col3)
are not
leftmost prefixes of (col1,col2,col3).

À妽º°¡ (col1,col2,col3)·Î ÀÖ´Ù¸é À§ÀÇ ÁúÀÇÁß ¿ÀÁ÷ ù¹ø° ÁúÀǸ¸ À妽º¸¦ »ç¿ë
ÇÑ´Ù.
µÎ¹ø° ¹× ¼¼¹ø° ÁúÀÇÀº À妽ºµÈ Ä÷³ÀÌ Æ÷ÇԵǾî ÀÖÁö¸¸ (col2) ¿Í (col2,col3)´Â
(col1,col2,col3) À妽º¿¡ ÇØ´çÇÏÁö ¾Ê´Â´Ù.

MySQL also uses indexes for LIKE comparisons if the argument to LIKE is a const
ant string that
doesn't start with a wildcard character. For example, the following SELECT stat
ements use indexes:

mysqlÀº ¶ÇÇÑ LIKEÀÇ Àμö°¡ ¿ÍÀϵåÄ«µå ¹®ÀÚ·Î ½ÃÀÛÇÏÁö ¾Ê´Â »ó¼ö ¹®ÀÚ¿­ÀÏÀ̶ó¸é
LIKE
ºñ±³¹®¿¡¼­ À妽º¸¦ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ÀÇ SELECT ¹®Àº À妽º¸¦ »ç¿ëÇÑ´Ù.

mysql> select * from tbl_name where key_col LIKE "Patrick%";
mysql> select * from tbl_name where key_col LIKE "Pat%_ck%";

ù¹ø° ¹®Àå¿¡¼­´Â "Patrick" <= key_col < "Patricl" À» °¡Áø ·¹Äڵ常 °í·ÁµÈ´Ù.
µÎ¹ø° ¹®Àå¿¡¼­´Â "Pat" <= key_col < "Pau" À» °¡Áø ·¹Äڵ常 °í·ÁµÈ´Ù.


´ÙÀ½ÀÇ SELECT ¹®Àº À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù:

mysql> select * from tbl_name where key_col LIKE "%Patrick%";
mysql> select * from tbl_name where key_col LIKE other_col;

ù¹ø° ¹®Àå¿¡¼­ LIKE °ªÀº ¿ÍÀϵåÄ«µå ¹®ÀÚ·Î ½ÃÀÛÇÏ°í ÀÖ´Ù. µÎ¹ø° ¹®Àå¿¡¼­´Â LI
KE °ªÀÌ
»ó¼ö°¡ ¾Æ´Ï´Ù.

--> 10.5´Â ´ÙÀ½¿¡ À̾...




Á¦  ¸ñ:[¹ø¿ª/mysql]10.5-10.10 mysql ¼º´ÉÇâ»ó¹ý         °ü·ÃÀÚ·á:¾øÀ½  [164]
º¸³½ÀÌ:¹®ÅÂÁØ  (taejun  )  1999-01-28 01:28  Á¶È¸:648
**Àº ¿ªÀÚÀÇ ÁÖ¼®ÀÔ´Ï´Ù.

                                       99. 1. 29. »õº®¿¡
                                       ¹® ÅÂ ÁØ (taejun@hitel.net)

10.5 WHERE ¹®¿¡¼­ ÃÖÀûÈ­Çϱâ
(À̹ø ÀýÀº ¿ÏÀüÇÑ ³»¿ëÀ» Æ÷ÇÔÇÏ°í ÀÖÁö´Â ¾Ê´Ù. mysqlÀº ¸¹Àº ÃÖÀûÈ­¹æ¹ýÀÌ
ÀÖ´Ù.)


In general, when you want to make a slow SELECT ... WHERE faster, the first thi
ng to check is
whether or not you can add an index. All references between different tables sh
ould usually be done
with indexes. You can use the EXPLAIN command to determine which indexes are us
ed for a
SELECT. See section 7.21 EXPLAIN syntax (Get information about a SELECT).
ÀϹÝÀûÀ¸·Î ´À¸° SELECT ... WHERE ¹®À» ºü¸£°Ô ÇÏ·Á¸é °¡Àå ¸ÕÀú È®ÀÎÇØ¾ß ÇÒ
°ÍÀÌ À妽º Ãß°¡ ¹®Á¦ÀÌ´Ù. ´Ù¸¥ Å×À̺í»çÀÌ¿¡¼­ ¸ðµç ·¹ÆÛ·±½º(references ÂüÁ¶)´Â
ÀϹÝÀûÀ¸·Î À妽º¿¡ ÀÇÇØ ¼öÇàµÈ´Ù. SELECT ¹®¿¡¼­ ¾î¶² À妽º¸¦ »ç¿ëÇÏ´ÂÁö
°áÁ¤Çϱâ À§ÇØ EXPLAIN ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. 7.21 [Explain]À» Âü°í.

mysql¿¡¼­ ¼öÇàÇÏ´Â ÃÖÀûÈ­´Â ´ÙÀ½°ú °°´Ù.



- ºÒÇÊ¿äÇÑ »ðÀÔ¾î Á¦°Å

      ((a AND b) AND c OR (((a AND b) AND (c AND d))))
   -> (a AND b AND c) OR (a AND b AND c AND d)

-»ó¼ö Æúµù(folding)

      (a    -> b>5 AND b=c AND a=5

- »ó¼ö Á¶°Ç Á¦°Å(»ó¼ö Æúµù¶§¹®¿¡  ÇÊ¿ä)

      (B>=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)
   -> B=5 OR B=6

- À妽º¿¡¼­ »ç¿ëµÇ´Â »ó¼ö Ç¥ÇöÀº Çѹø¿¡ °è»êµÈ´Ù.
(Constant expressions used by indexes are evaluated only once.)

- WHERE ÀýÀÌ ¾ø´Â ´ÜÀÏ Å×À̺íÀÇ COUNT(*)´Â Å×À̺í Á¤º¸¿¡¼­ Á÷Á¢ °ªÀ»
°¡Á®¿Â´Ù. ´ÜÀÏ Å×ÀÌºí¿¡¼­ »ç¿ëµÈ NOT NULL Ç¥Çöµµ ÀÌ¿Í °°ÀÌ ¼öÇàµÈ´Ù.  

- À¯È¿ÇÏÁö ¾ÊÀº »ó¼ö Ç¥ÇöÀº ¹Ì¸® Á¦°ÅµÈ´Ù. mysqlÀº ºÒ°¡´ÉÇÏ°í ÇØ´çÇÏ´Â
·¹Äڵ尡 ¾ø´Â SELECT ¹®À» ºü¸£°Ô °¨ÁöÇÑ´Ù.

- GROUP BY ³ª ±×·ì Æã¼Ç(COUNT(), MIN() ...)À» »ç¿ëÇÏÁö ¾ÊÀ¸¸é HAVING
Àº WHERE ¿¡ ÇÕÃÄÁø´Ù.
(** HAVING Àý¿¡¼­´Â À妽º¸¦ »ç¿ëÇÏÁö ¸øÇÔ. ±×·¯¹Ç·Î °¡´ÉÇÑ HAVINGÀýÀ»
»ç¿ëÇÏÁö ¾Ê´Â°Ô ¼Óµµ¸é¿¡¼­ ÁÁ´Ù **)

- °¢ ¼­ºê Á¶Àο¡¼­ ºü¸£°Ô WHERE ¹®À» °è»êÇÏ°í °¡´ÉÇÑÇÑ ·¹Äڵ带 Á¦¿Ü
Çϵµ·Ï °£¼ÒÇÏ°Ô WHERE ¹®ÀÌ ¸¸µé¾îÁø´Ù.

- mysqlÀº ÀϹÝÀûÀ¸·Î ÃÖ¼ÒÇÑÀÇ ·¹Äڵ带 ã±â À§ÇØ À妽º¸¦ »ç¿ëÇÑ´Ù.
=, >, >=, <, <=, BETWEEN ±×¸®°í  'something%' ó·³ ¾ÕÀÌ ¿ÍÀϵåÄ«µå·Î
½ÃÀÛÇÏÁö ¾Ê´Â LIKE ¹®µîÀ» »ç¿ëÇÏ¿© ºñ±³¸¦ ÇÒ ¶§ À妽º¸¦ »ç¿ëÇÑ´Ù.
(** 10.4 Àý¿¡¼­ ¼³¸íÇÏ¿´µíÀÌ like ¸¦ »ç¿ëÇÒ¶§ ¿ÍÀϵåÄ«µå·Î ½ÃÀÛÇÏ´Â
like ¹®À» »ç¿ëÇϸé À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù. ÀÏÁ¤ÇÑ ´Ü¾î·Î¸¸ ½ÃÀÛÇÏ´Â
Ä÷³¿¡¼­ ÀڷḦ ãÀ» ¶§ À¯¿ëÇÒ °ÍÀÌ´Ù. **)

- Any index that doesn't span all AND levels in the WHERE clause is
not used to optimize the query.

´ÙÀ½ÀÇ WHERE ¹®Àº À妽º¸¦ »ç¿ëÇÑ´Ù.:

... WHERE index_part1=1 AND index_part2=2
... WHERE index=1 OR A=10 AND index=2      /* index = 1 OR index = 2 */
... WHERE index_part1='hello' AND index_part_3=5
         /* optimized like "index_part1='hello'" */

´ÙÀ½ÀÇ WHERE ¹®Àº À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.:

... WHERE index_part2=1 AND index_part3=2  /* index_part_1 is not used */
... WHERE index=1 OR A=10                  /* No index */
... WHERE index_part1=1 OR index_part2=10  /* No index spans all rows */

- ÁúÀÇ¿¡¼­ ´Ù¸¥ Å×ÀÌºíº¸´Ù ¸ðµç »ó¼ö Å×À̺íÀ» ¸ÕÀú Àд´Ù. »ó¼ö Å×À̺íÀº
´ÙÀ½°ú °°´Ù.
       ¤·ºó Å×À̺íÀ̳ª 1°³ÀÇ ·¹Äڵ常 ÀÖ´Â Å×À̺í
       ¤·WHERE ¹®¿¡¼­ UNIQUE À妽º³ª PRIMARY KEY ¸¦ »ç¿ëÇÏ°í ¸ðµç À妽º
´Â »ó¼ö Ç¥ÇöÀ¸·ÎµÈ Å×À̺í

       ´ÙÀ½ÀÇ Å×ÀÔ¸ªÀº »ó¼ö Å×À̺í·Î »ç¿ëµÈ´Ù.

   mysql> SELECT * FROM t WHERE primary_key=1;
   mysql> SELECT * FROM t1,t2
              WHERE t1.primary_key=1 AND t2.primary_key=t1.id;

- ¸ðµç °¡´É¼ºÀ» ½ÃµµÇÏ¿© Å×À̺íÀ» Á¶ÀÎÇϴµ¥ °¡Àå ÁÁÀº Á¶ÀÎ Á¶ÇÕÀ» ã´Â´Ù.
(ORDER BY³ª GROUP BYÀÇ ¸ðµç Ä÷³ÀÌ µ¿ÀÏÇÑ Å×ÀÌºí¿¡¼­ ³ª¿À¸é Á¶ÀÎÀ» ÇÒ¶§
ÀÌ Å×À̺íÀÌ ¸ÕÀú ¼±ÅõȴÙ)

- ORDER BY ¹®°ú ´Ù¸¥ GROUP BY ¹®ÀÌ ÀÖÀ» ¶§, ¶Ç´Â ORDER BY ³ª GROUP BY°¡
Á¶ÀΠťÀÇ Ã¹¹ø° Å×À̺íÀÌ ¾Æ´Ñ ´Ù¸¥ Å×À̺íÀÇ Ä÷³À» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é
ÀÓ»ç Å×À̺íÀ» ¸¸µç´Ù.

- °¢ Å×À̺í À妽º¸¦ ã°í ·¹ÄÚµåÀÇ 30%¹Ì¸¸À» »ç¿ëÇÏ´Â (best) À妽º°¡
»ç¿ëµÈ´Ù. ±×·± À妽º°¡ ¾øÀ¸¸é ºü¸¥ Å×ÀÌºí °Ë»öÀÌ »ç¿ëµÈ´Ù.

- ¾î¶² °æ¿ì¿¡´Â mysqlÀº µ¥ÀÌÅÍ ÆÄÀÏÀ» Á¶È¸ÇÏÁö ¾Ê°í À妽º¿¡¼­ ·¹Äڵ带
ÀÐÀ» ¼ö ÀÖ´Ù. À妽º¿¡¼­ »ç¿ëÇÑ ¸ðµç Ä÷³ÀÌ ¼ýÀÚ¶ó¸é ÁúÀǸ¦ ó¸®Çϴµ¥
´ÜÁö À妽º Æ®¸®¸¸À» »ç¿ëÇÑ´Ù.

- °¢ ·¹Äڵ尡 Ãâ·ÂµÇ±â Àü¿¡ HAVING Àý¿¡ ¸ÂÁö ¾Ê´Â ·¹ÄÚµå´Â °Ç³Ê¶Ú´Ù.

´ÙÀ½Àº ¸Å¿ì ºü¸¥ ÁúÀÇÀÇ ¿¹ÀÌ´Ù:

mysql> SELECT COUNT(*) FROM tbl_name;
mysql> SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name;
mysql> SELECT MAX(key_part2) FROM tbl_name
          WHERE key_part_1=constant;
mysql> SELECT ... FROM tbl_name
          ORDER BY key_part1,key_part2,... LIMIT 10;
mysql> SELECT ... FROM tbl_name
          ORDER BY key_part1 DESC,key_part2 DESC,... LIMIT 10;

´ÙÀ½ÀÇ Ä¿¸®´Â À妽º Æ®¸®¸¸À» »ç¿ëÇÏ¿© °ªÀ» ±¸ÇÑ´Ù. (À妽º Ä÷³Àº
¼ýÀÚ¶ó°í °¡Á¤):

mysql> SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val;
mysql> SELECT COUNT(*) FROM tbl_name
          WHERE key_part1=val1 and key_part2=val2;
mysql> SELECT key_part2 FROM tbl_name GROUP BY key_part1;

´ÙÀ½ÀÇ ÁúÀÇ´Â °³º°ÀûÀÎ Á¤¿­À» ÇÏÁö ¾Ê°í Á¤¿­µÈ ¼ø¼­´ë·Î ¿­À» °¡Á®¿À´Â
µ¥ À妽º¸¦ »ç¿ëÇÑ´Ù:

mysql> SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,...
mysql> SELECT ... FROM tbl_name ORDER BY key_part1 DESC,key_part2 DESC,...


10.6 Å×ÀÌºí ¿­°í ´Ý´Â ¹æ¹ý

open Å×À̺íÀÇ Ä³½¬´Â table_cacheÀÇ ÃÖ´ë°ª±îÁö Ä¿Áú ¼ö ÀÖ´Ù.
(±âº»°ª 64 ; ÀÌ °ªÀº mysqld¿¡¼­ -0 table_cache=# À¸·Î ¹Ù²Ü ¼ö ÀÖ´Ù)
ij½¬°¡ ²Ë áÀ»¶§, ±×¸®°í ´Ù¸¥ ½º·¹µå°¡ Å×À̺íÀ» ¿­·Á°í ÇÒ ¶§, ¶Ç´Â
mysqladmin refresh ³ª mysqladmin flush-tables¸¦ »ç¿ëÇÒ¶§¸¦ Á¦¿ÜÇÏ°í
´Â Å×À̺íÀº °áÄÚ ´ÝÈ÷Áö ¾Ê´Â´Ù.

Å×À̺í ij½¬°¡ ²Ë Â÷¸é ¼­¹ö´Â ij½¬ ¿£Æ®¸®¸¦ »ç¿ëÇϵµ·Ï Á¶ÀýÇϱâ À§ÇØ
´ÙÀ½ÀÇ ÀýÂ÷¸¦ »ç¿ëÇÑ´Ù.

- °¡Àå ¸ÕÀú »ç¿ëÇß´ø ¼ø¼­´ë·Î ÇöÀç »ç¿ëÇÏÁö ¾Ê´Â Å×À̺íÀ» ´Ý´Â´Ù.
- ij½¬°¡ ²Ë á°í ¾î¶² Å×ÀÌºíµµ ´ÝÈ÷Áö ¾ÊÁö¸¸ »õ·Î¿î Å×À̺íÀ» ¿­¾î¾ß
ÇÑ´Ù¸é ij½¬°¡ ÇÊ¿äÇÑ ¸¸Å­ ÀÓ½ÃÀûÀ¸·Î È®ÀåµÈ´Ù.
- ij½¬°¡ ÀÓ½ÃÀûÀ¸·Î È®ÀåµÈ »óÅÂÀÌ°í Å×À̺íÀ» »ç¿ëÇÒ ¼ö ¾ø´Â »óȲÀ¸·Î
°¡¸é Å×À̺íÀ» ´Ý°í ij½¬¸¦ ÇØÁ¦ÇÑ´Ù.

Å×À̺íÀº °¢ µ¿½Ãº´ÇàÀûÀÎ Á¢±Ù¶§¸¶´Ù ¿­¸°´Ù. µ¿ÀÏÇÑ Å×ÀÌºí¿¡ Á¢±ÙÇÏ´Â
µÎ°³ÀÇ ½º·¹µå°¡ Àְųª °°Àº ÁúÀÇ¿¡¼­ Å×ÀÌºí¿¡ µÎ¹ø Á¢±ÙÇϸé(with AS)
Å×À̺íÀ» µÎ¹ø ¿­¿©¾ß ÇÑ´Ù´Â ÀǹÌÀÌ´Ù. Å×À̺íÀÇ Ã¹¹ø° °³¹æÀº µÎ°³ÀÇ
ÆÄÀÏ µð½ºÅ©¸³Å͸¦ °¡Áø´Ù. ; Ãß°¡ÀûÀÎ Å×À̺íÀÇ °³¹æÀº ÇϳªÀÇ ÆÄÀÏ
µð½ºÅ©¸³Å͸¦ °¡Áú »ÓÀÌ´Ù. óÀ½¿¡ °³¹æ¿¡ »ç¿ëÇÏ´Â Ãß°¡ÀûÀº ÆÄÀÏ µð½º
Å©¸³ÅÍ´Â À妽º ÆÄÀÏ¿¡ »ç¿ëµÈ´Ù. ; ÀÌ µð½ºÅ©¸³ÅÍ´Â ¸ðµç ½º·¹µå¿¡¼­
°øÀ¯µÈ´Ù.


10.6.1 µ¥ÀÌÅͺ£À̽º¿¡¼­ ¸¹Àº ¼öÀÇ Å×À̺íÀ» ¸¸µé¶§ÀÇ ´ÜÁ¡

µð·ºÅ丮¿¡ ¸¹Àº ÆÄÀÏÀÌ ÀÖ´Ù¸é open, close ±×¸®°í create ¿ÀÆÛ·¹À̼ÇÀº
´À·ÁÁú °ÍÀÌ´Ù. ¼­·Î ´Ù¸¥ ¸¹Àº Å×ÀÌºí¿¡¼­ SELECT ¹®À» ¼öÇàÇϸé Å×À̺í
ij½¬°¡ ²Ë Âû ¶§ ¾à°£ÀÇ overhead°¡ ÀÖÀ» °ÍÀÌ´Ù. ¿Ö³Ä¸é °³¹æµÈ Å×À̺íÀÌ
ÀÖ´Ù¸é ´Ù¸¥ Å×À̺íÀº ´ÝÇô¾ß Çϱ⠶§¹®ÀÌ´Ù. Å×À̺í ij½¬¸¦ Å©°Ô Çؼ­
ÀÌ·¯ÇÑ ¿À¿ì¹öÇìµå¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.


10.7 ¸¹Àº Å×À̺íÀ» ¿©´Â ÀÌÀ¯

mysqladmin status ¸¦ ½ÇÇàÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ³ª¿Ã °ÍÀÌ´Ù:

Uptime: 426 Running threads: 1 Questions: 11082 Reloads: 1 Open tables: 12

´ÜÁö 6Å×À̺íÀ» »ç¿ëÇߴµ¥ ÀÌ·¯ÇÑ °á°ú´Â ´çȲ½º·¯¿ï °ÍÀÌ´Ù.

mysqlÀº ¸ÖƼ½º·¹µå¸¦ »ç¿ëÇÑ´Ù. ±×·¡¼­ µ¿½Ã¿¡ °°Àº Å×ÀÌºí¿¡¼­ ¸¹Àº ÁúÀǸ¦
ÇÒ ¼ö ÀÖ´Ù. °°Àº ÆÄÀÏ¿¡ ´ëÇÏ¿© ´Ù¸¥ »óȲÀ» °¡Áö´Â µÎ°³ÀÇ ½º·¹µå¿¡ ´ëÇÑ
¹®Á¦¸¦ ÁÙÀ̱â À§ÇØ Å×À̺íÀº °¢ µ¿½Ãº´ÇàÀûÀÎ ½º·¹µå¸¶´Ù µ¶¸³ÀûÀ¸·Î °³¹æ
µÈ´Ù. ÀÌ°ÍÀº Å×ÀÌŸ ÆÄÀÏ¿¡¼­ ¾à°£ÀÇ ¸Þ¸ð¸®¿Í ÇϳªÀÇ Ãß°¡ÀûÀÎ ÆÄÀÏ µð½º
Å©¸³Å͸¦ »ç¿ëÇÑ´Ù. ¸ðµç ½º·¹µå¿¡¼­ À妽º ÆÄÀÏÀº °øÀ¯µÈ´Ù.


10.8 µ¥ÀÌÅͺ£À̽º¿Í Å×ÀÌºí¿¡¼­ ½Éº¼¸¯ ¸µÅ© »ç¿ë

µ¥ÀÌÅͺ£À̽º µð·ºÅ丮¿¡¼­ Å×À̺í°ú µ¥ÀÌÅͺ£À̽º¸¦ ´Ù¸¥ À§Ä¡·Î ¿Å±â°í
»õ·Î¿î À§Ä¡·Î ½Éº¼¸¯ ¸µÅ©¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÏ´Â °ÍÀ» ¿øÇÒ °æ¿ì°¡
ÀÖ´Ù. ¿¹¸¦ µé¸é µ¥ÀÌÅͺ£À̽º¸¦ ´õ ¿©À¯°ø°£ÀÌ ¸¹Àº ÆÄÀϽýºÅÛÀ¸·Î ¿Å±â´Â
°æ¿ì µî.

mysql¿¡¼­ Å×À̺íÀÌ ½Éº¼¸µ ¸µÅ©µÇ¾ú´Ù´Â °ÍÀ» °¨ÁöÇÏ¸é ½Éº¼¸µ ¸µÅ©°¡ °¡¸®
Å°´Â Å×À̺íÀ» ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Ù. realpath() call À» Áö¿øÇÏ´Â ¸ðµç ½Ã
½ºÅÛ¿¡¼­ ÀÛµ¿ÇÑ´Ù. (ÃÖ¼ÒÇÑ ¸®´ª½º¿Í ¼Ö¶ó¸®½º´Â realpath()¸¦ Áö¿øÇÑ´Ù)
realpath()¸¦ Áö¿øÇÏÁö ¾Ê´Â ½Ã½ºÅÛ¿¡¼­ µ¿½Ã¿¡ ½ÇÁ¦ °æ·Î¿Í ½Éº¼¸¯ ¸µÅ©µÈ
°æ·Î¿¡ Á¢±ÙÇÏ¸é ¾ÈµÈ´Ù. ÀÌ·± °æ¿ì¿¡´Â ¾÷µ¥ÀÌÆ® µÈÈÄ¿¡ Å×À̺íÀÌ ¸ð¼øµÉ
¼ö ÀÖ´Ù.

mysqlÀº ±âº»°ªÀ¸·Î µ¥ÀÌÅͺ£À̽º ¸µÅ©¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. µ¥ÀÌÅͺ£À̽º°£¿¡
½Éº¼¸¯ ¸µÅ©¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÀÛµ¿À» Àß ÇÒ °ÍÀÌ´Ù. mysql µ¥ÀÌÅÍ µð·ºÅ丮¿¡
db1 µ¥ÀÌÅͺ£À̽º°¡ ÀÖ°í db1À» °¡¸®Å°´Â db2 ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾ú´Ù°í
Çغ¸ÀÚ:

shell> cd /path/to/datadir
shell> ln -s db1 db2

ÀÌÁ¦ db1¿¡ tbl_a¶ó´Â Å×À̺íÀÌ ÀÖ´Ù¸é db2¿¡µµ tbl_a°¡ ³ªÅ¸³¯ °ÍÀÌ´Ù. ÇÑ
½º·¹µå°¡ db1.tbl_a¸¦ ¾÷µ¥ÀÌÆ®ÇÏ°í ´Ù¸¥ ½º·¹µå°¡ db2.tbl_a¸¦ ¾÷µ¥ÀÌÆ®Çϸé
¹®Á¦°¡ »ý±æ °ÍÀÌ´Ù.

Á¤¸»·Î ÀÌ ±â´ÉÀÌ ÇÊ¿äÇϸé , `mysys/mf_format.c'¿¡¼­ ´ÙÀ½ÀÇ Äڵ带 ¼öÁ¤
ÇØ¾ß ÇÑ´Ù.:

if (!lstat(to,&stat_buff))  /* Check if it's a symbolic link */
   if (S_ISLNK(stat_buff.st_mode) && realpath(to,buff))

À§ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù :

if (realpath(to,buff))


10.9 Å×ÀÌºí¿¡ ¶ô °Å´Â ¹æ¹ý

mysqlÀÇ ¸ðµç ¶ôÀº deadlock-free ÀÌ´Ù. ¾ðÁ¦³ª ÁúÀǸ¦ ½ÃÀÛÇÒ¶§ Çѹø¿¡ ¸ðµç
ÇÊ¿äÇÑ ¶ôÀ» ¿äûÇÏ°í ¾ðÁ¦³ª °°Àº ¼ø¼­´ë·Î Å×ÀÌºí¿¡ ¶ôÀ» °É¾î °ü¸®ÇÑ´Ù.

WRITE ¶ôÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù:

- Å×ÀÌºí¿¡ ¶ôÀÌ ¾øÀ¸¸é ±× Å×ÀÌºí¿¡ write ¶ôÀ» °Ç´Ù.
- ÀÌ·± °æ¿ì°¡ ¾Æ´Ï¶ó¸é write ¶ô Å¥¿¡ ¶ôÀ» ¿äûÇÑ´Ù.

READ ¶ôÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù:

- Å×ÀÌºí¿¡ write ¶ôÀÌ ¾øÀ¸¸é ±× Å×ÀÌºí¿¡ read ¶ôÀ» °Ç´Ù.
- ÀÌ·± °æ¿ì°¡ ¾Æ´Ï¶ó¸é read ¶ô Å¥¿¡ ¶ôÀ» ¿äûÇÑ´Ù.

¶ôÀÌ ÇØÁ¦µÇ¾úÀ» ¶§ ¶ôÀº write ¶ô Å¥ÀÇ ½º·¹µå¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ±×·¯°í
³ª¼­ read ¶ô Å¥ÀÇ ½º·¹µå¿¡¼­ »ç¿ëÇÑ´Ù.

Å×ÀÌºí¿¡¼­ ¾÷µ¥ÀÌÆ®¸¦ ¸¹ÀÌ Çϸé SELECT ¹®Àº ´õ ÀÌ»ó ¾÷µ¥ÀÌÆ®°¡ ¾øÀ» ¶§±îÁö
±â´Ù¸°´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ Å×ÀÌºí¿¡¼­ INSERT ¿Í SELECT ¿ÀÆÛ·¹À̼ÇÀ» ¸¹ÀÌ
»ç¿ëÇÏ´Â °æ¿ì¿¡ ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù. Àӽà Å×ÀÌºí¿¡ ·¹Äڵ带 ÀÔ·ÂÇÏ°í
Çѹø¿¡ Àӽà Å×ÀÌºí¿¡¼­ ½ÇÁ¦ Å×À̺í·Î ·¹Äڵ带 ¾÷µ¥ÀÌÆ®ÇÑ´Ù.

´ÙÀ½ÀÇ ¿¹¸¦ º¸ÀÚ:

mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
mysql> insert into real_table select * from insert_table;
mysql> delete from insert_table;
mysql> UNLOCK TABLES;

¸¸¾à ¾î¶² °æ¿ì¿¡ SELECT¹®¿¡ ¿ì¼±±ÇÀ» ÁÖ°í ½Í´Ù¸é INSERT ¿É¼Ç¿¡¼­
LOW_PRIORITY or HIGH_PRIORITY ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. 7.13 [Insert] Âü°í.
(** LOW_PRIORITY¸¦ ÁöÁ¤Çϸé Ŭ¶óÀ̾ðÆ®¿¡¼­ Å×À̺íÀ» ÀÐÁö ¾ÊÀ» ¶§±îÁö
INSERT ¹® ¼öÇàÀÌ ¹Ì·ç¾îÁø´Ù. **)

´ÜÀÏ Å¥¸¦ »ç¿ëÇϱâ À§ÇØ `mysys/thr_lock.c' ÀÇ ¶ôÅ· Äڵ带 ¹Ù²Ü ¼ö ÀÖ´Ù.
ÀÌ·± °æ¿ì write ¶ô°ú read ¶ôÀº °°Àº ¿ì¼±±ÇÀ» °¡Áö¸ç ¾î¶² ¾ÖÇø®ÄÉÀ̼ǿ¡
¼­´Â À¯¿ëÇÒ ¼ö ÀÖ´Ù.

10.10 Å×À̺íÀ» ºü¸£°í ÀÛ°Ô ¹è¿­ÇÏ´Â ¹æ¹ý <** Å×À̺í ÃÖÀûÈ­ **>

´ÙÀ½Àº Å×ÀÌºí¿¡¼­ ÃÖ´ëÀÇ ¼º´ÉÀ» ³»´Â ¹æ¹ý°ú ÀúÀå °ø°£À» Àý¾àÇÒ ¼ö ÀÖ´Â
Å×Å©´ÐÀÌ´Ù:

- °¡´ÉÇÑÇÑ NOT NULL·Î Ä÷³À» ¼±¾ðÇÑ´Ù. ¼Óµµ°¡ »¡¶óÁö¸ç °¢ Ä÷³¸¶´Ù
1 ºñÆ®¸¦ Àý¾àÇÒ ¼ö ÀÖ´Ù.
- default °ªÀ» °¡Áú ¶§ À¯¸®ÇÏ´Ù. ÀԷµǴ °ªÀÌ ±âº»°ª°ú ´Ù¸¦ ¶§¸¸ È®½Ç
ÇÏ°Ô °ªÀÌ ÀԷµȴÙ. INSERT ¹®¿¡¼­ ù¹ø° TIMESTAMP Ä÷³À̳ª
AUTO-INCREAMENT Ä÷³ÀÇ °ªÀ» ÀÔ·ÂÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
18.4.49 [mysql_insert_id()] Âü°í.
- °¡´ÉÇÑÇÑ Å×À̺íÀ» ÀÛ°Ô ¸¸µå·Á¸é ´õ ÀÛÀº integer ŸÀÔÀ» »ç¿ëÇÏÀÚ.
¿¹¸¦ µé¸é MEDIUMINT °¡ º¸Åë INT º¸´Ù ÁÁ´Ù.
- °¡º¯ ±æÀÌ Ä÷³ÀÌ ¾ø´Ù¸é(VARCHAR, TEXT or BLOB columns), °íÁ¤ ±æÀÌ
·¹ÄÚµå Æ÷¸ËÀÌ »ç¿ëµÈ´Ù. ÀÌ °æ¿ì ¼Óµµ´Â ´õ ºü¸£Áö¸¸ ºÒÇàÈ÷µµ(ÈæÈæ~)
³¶ºñµÇ´Â °ø°£ÀÌ ´õ ¸¹´Ù. 10.14 [Row format] Âü°í.
- mysqlÀÌ ÁúÀǸ¦ È¿°úÀûÀ¸·Î ÃÖÀûÈ­Çϱâ À§ÇØ ¸¹Àº ¾çÀÇ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÑÈÄ
isamchk --analyze¸¦ ½ÇÇàÇÏÀÚ. ÀÌ·¸°Ô ÇÏ¸é µ¿ÀÏÇÑ °ªÀ» °¡Áø ÁÙÀÇ Æò±Õ ¼ýÀÚ
¸¦ °¡¸®Å°´Â °¢ À妽ºÀÇ °ªÀ» ¾÷µ¥ÀÌÆ®ÇÑ´Ù. (¹°·Ð unique À妽º¿¡¼­´Â
Ç×»ó 1ÀÌ´Ù)
- À妽º¿Í À妽º¿¡ µû¸¥ µ¥ÀÌŸ¸¦ Á¤¿­ÇÏ·Á¸é
isamchk --sort-index --sort-records=1 À» »ç¿ëÇÏÀÚ.(if you want to sort on index
1).
À妽º¿¡ µû¶ó Á¤·ÄµÈ ¸ðµç ·¹Äڵ带 Àбâ À§ÇØ unique À妽º¸¦ °¡Á³´Ù¸é
ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ ¼Óµµ¸¦ ºü¸£°Ô ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀÌ´Ù.
- INSERT ¹®¿¡¼­ °¡´ÉÇÑ ´ÙÁß °ª ¸ñ·ÏÀ» »ç¿ëÇÏÀÚ. °³º°ÀûÀÎ SELECT ¹®º¸´Ù
ÈξÀ ºü¸£´Ù. µ¥ÀÌŸ¸¦ Å×ÀÌºí¿¡ ÀÔ·ÂÇÒ ¶§ LOAD DATA INFILEÀ» »ç¿ëÇÏÀÚ.
¸¹Àº INSERT ¹®À» »ç¿ëÇÏ´Â °Íº¸´Ù º¸Åë 20¹è ºü¸£´Ù. 7.15 [Load] Âü°í.

¸¹Àº À妽º¸¦ °¡Áø Å×ÀÌºí¿¡ µ¥ÀÌŸ¸¦ ÀÔ·ÂÇÒ¶§ ´ÙÀ½ÀÇ °úÁ¤À» »ç¿ëÇϸé
¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù.
1. mysqlÀ̳ª Perl ¿¡¼­ CREATE TABLE·Î Å×À̺íÀ» ¸¸µç´Ù.
2. mysqladmin flush-tables ½ÇÇà. (** ¿­¸° Å×À̺íÀ» ¸ðµÎ ´ÝÀ½ **)
3. isamchk --keys-used=0 /path/to/db/tbl_name »ç¿ë. Å×ÀÌºí¿¡¼­ ¸ðµç
À妽º »ç¿ëÀ» Á¦°ÅÇÑ´Ù.
4. LOAD DATA INFILE ¸¦ ÀÌ¿ë Å×ÀÌºí¿¡ µ¥ÀÌŸ¸¦ ÀÔ·Â.
5. pack_isamÀ» °¡Áö°í ÀÖ°í Å×À̺íÀ» ¾ÐÃàÇϱ⠿øÇϸé pack_isamÀ» ½ÇÇà.
6. isamchk -r -q /path/to/db/tbl_name ¸¦ ÀÌ¿ë À妽º¸¦ ´Ù½Ã »ý¼º.
7. mysqladmin flush-tables ½ÇÇà.

- LODA DATA INFILE °ú INSERT ¹®¿¡¼­ ´õ ºü¸¥ ¼Óµµ¸¦ ³»·Á¸é Å° ¹öÆÛ¸¦
Áõ°¡½ÃŲ´Ù. mysqld³ª safe_mysqld¿¡¼­ -O key_buffer=# ¿É¼ÇÀ» »ç¿ëÇϸé
µÈ´Ù. ¿¹¸¦ µé¾î 16M´Â dzºÎÇÑ ·¥À» °¡Á³´Ù¸é ÈǸ¢ÇÑ °ªÀÌ´Ù.
- ´Ù¸¥ ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© µ¥ÀÌŸ¸¦ ÅؽºÆ® ÆÄÀÏ·Î ´ýÇÁÇÒ¶§
SELECT ... INTO OUTFILE À» »ç¿ëÇÏÀÚ. 7.15 [LOAD DATA INFILE] Âü°í.
- ¿¬¼ÓÀ¸·Î ´Ù·®ÀÇ insert¿Í update¸¦ ÇÒ ¶§ LOCK TABLEÀ» »ç¿ëÇÏ¿© Å×ÀÌ
ºí¿¡ ¶ôÀ» °É¸é ¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù. LOAD DATA INFILE ±×¸®°í
SELECT ...INTO OUTFILE ´Â ¿øÀÚÀûÀ̱⠶§¹®¿¡ LOCK TABLEÀ» »ç¿ëÇϸé
¾ÈµÈ´Ù. 7.23 [LOCK TABLES/UNLOCK TABLES] Âü°í.

Å×À̺íÀÌ ¾ó¸¶³ª ´ÜÆíÈ­µÇ¾ú´ÂÁö Á¡°ËÇÏ·Á¸é '.ISM' ÆÄÀÏ¿¡¼­
isamchk -evi ¸¦ ½ÇÇàÇÑ´Ù. 13Àå [Maintenance] Âü°í.


Modify Delete Post Reply Backward Forward List
Powered by Kang Jul Ki