| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
REINDEX´Â À妽ºÀÇ Å×ÀÌºí¿¡ º¸Á¸µÈ µ¥ÀÌÅ͸¦ »ç¿ëÇØ À妽º¸¦ À籸Ãà ÇÏ°í ±× À妽ºÀÇ ¿À·¡µÈ º¹»çº»À¸·Î ´ëüÇÕ´Ï´Ù. ÀÌÇÏ¿¡REINDEX°¡ »ç¿ëµÇ´Â »óȲÀ» ³ªÅ¸³À´Ï´Ù.
ÇÑ À妽º¿¡ ¿À·ù°¡ ¹ß»ýÇß°í ´õ ÀÌ»ó À¯¿äÇÑ µ¥ÀÌÅ͸¦ °®°í ÀÖÁö ¾Ê½À´Ï´Ù. ÀÌ·ÐÀûÀ¸·Î´Â °áÄÚ ÀϾÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù¸¸, ½ÇÁ¦·Î´Â ¼ÒÇÁÆ®¿þ¾îÀÇ ¹ö±×³ª Çϵå¿þ¾îÀÇ ÀåÇØ¿¡ ÀÇÇØ À妽º°¡ ÆÄ¼ÕÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. REINDEX´Â ÀÌ º¹±¸ ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.
À妽º°¡"ÆØÃ¢ »óÅÂ" Áï, ¸¹ÀÌ ºñ°Å³ª °ÅÀÇ ºó ÆäÀÌÁö¸¦ °¡Áö´Â »óŰ¡ µÇ¾î ÀÖ´Â °æ¿ìÀÔ´Ï´Ù. ÀÌ »óȲÀº PostgreSQLÀÇ B-tree À妽º°¡ ƯÁ¤ÀÇ ÆÐÅÏÀ¸·Î ¾×¼¼½º µÇ¾úÀ» °æ¿ì¿¡ ÀϾ ¼ö ÀÖ½À´Ï´Ù. REINDEX¸¦ »ç¿ëÇØ »ç¿ëµÇÁö ¾Ê´Â ÆäÀÌÁö¸¦ ¾øÀÌ »õ·Î¿î À妽º ¹öÁ¯À» ÀÛ¼ºÇϹǷΠÀ妽ºÀÇ ¿µ¿ª ¼Òºñ·®À» °¨¼ÒÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºSection 22.2À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
À妽ºÀÇ ÀúÀå ¸Å°³º¯¼ö(fillfactor¿Í °°Àº)¸¦ º¯°æÇØ, ÀÌ º¯°æÀÌ À¯È¿ÇѰ¡ ¾î¶²°¡¸¦ È®ÀÎÇÏ°í ½ÍÀº °æ¿ìÀÔ´Ï´Ù.
CONCURRENTLY¿É¼ÇÀ» ºÙÀÎ À妽º ÀÛ¼ºÀÌ ½ÇÆÐÇØ,"¹«È¿ÀÎ"À妽º°¡ ³²¾ÒÀ» °æ¿ìÀÔ´Ï´Ù. ÀÌ·¯ÇÑ À妽º´Â »ç¿ëµÇÁö ¾ÊÁö¸¸, REINDEX¸¦ »ç¿ëÇØ °£´ÜÇÏ°Ô ÀçÀÛ¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. REINDEX¿¡¼´Â µ¿½Ã ±¸ÃàÀ» ÇÒ ¼ö ¾ø´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ¿î¿ë¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê°í À妽º¸¦ ÀÛ¼ºÇϱâ À§Çؼ´Â, À妽º¸¦ »èÁ¦ÇÏ°í ³ª¼CREATE INDEX CONCURRENTLY¸í·ÉÀ» Àç¹ßÇàÇØ¾ß ÇÕ´Ï´Ù.
ÁöÁ¤ÇÑ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù.
ÁöÁ¤ÇÑ Å×À̺íÀÇ ÀüÀ妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù. Å×ÀÌºí¿¡ 2Â÷ÀûÀÎ"TOAST"Å×À̺íÀÌ À־, ¶È°°ÀÌ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù.
ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ ¸ðµç ½Ã½ºÅÛ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù. ¶Ç, stand-alone ¸ðµå(Èļú) ÀÌ¿ÜÀÇ ¸ðµå¿¡¼´Â, °øÀ¯ ½Ã½ºÅÛ Ä«Å»·Î±×ÀÇ À妽º´Â 󸮵ÇÁö ¾Ê½À´Ï´Ù. ÀÌ ±¸¹®ÀÇREINDEX¸¦ Æ®·£Àè¼Ç(transaction) ºí·Ï³»¿¡¼ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ ¸ðµç ½Ã½ºÅÛ Ä«Å»·Î±×ÀÇ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù. »ç¿ëÀÚ Å×À̺íÀÇ À妽º´Â 󸮵ÇÁö ¾Ê½À´Ï´Ù. ¶Ç, stand-alone ¸ðµå(Èļú) ÀÌ¿ÜÀÇ ¸ðµå¿¡¼´Â °øÀ¯ ½Ã½ºÅÛ Ä«Å»·Î±×ÀÇ À妽º´Â 󸮵ÇÁö ¾Ê½À´Ï´Ù. ÀÌ ±¸¹®ÀÇREINDEX¸¦ Æ®·£Àè¼Ç(transaction) ºí·Ï³»¿¡¼ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
À妽º¸¦ ÀçÀÛ¼ºÇÏ´Â À妽º, Å×À̺í, µ¥ÀÌÅͺ£À̽ºÀÇ À̸§ÀÔ´Ï´Ù. À妽º¿Í Å×À̺íÀº schema·Î ¼ö½Ä °¡´ÉÇÕ´Ï´Ù. ÇöÀç »óÅ·μ´Â REINDEX DATABASE¿Í REINDEX SYSTEM´Â ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ À妽º¸¸À» ÀçÀÛ¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡, ÀÌ ¸Å°³º¯¼ö´Â ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽º¸íÀ¸·Î ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù.
ÀÌ ¿É¼ÇÀº ÆóÁöµÇ¾ú½À´Ï´Ù. ÁöÁ¤µÇ¾îµµ ¹«½ÃµË´Ï´Ù.
Å×À̺íÀÇ À妽º°¡ ¼Õ»óµÇ¾ú´Ù¸é, REINDEX INDEX ¶Ç´Â REINDEX TABLE¸¦ »ç¿ëÇÏ¿© °£´ÜÈ÷ À妽º¸¦ ÀçÀÛ¼º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
½Ã½ºÅÛ Å×À̺íÀÇ À妽ºÀÇ ÆÄ¼Õ¿¡ ´ëÇÑ º¹±¸°¡ ÇÊ¿äÇÏ´Ù¸é ´õ¿í ¾î·Æ½À´Ï´Ù. ÀÌ °æ¿ì, ½Ã½ºÅÛ¿¡ ÀÇÇØ ÆÄ¼ÕÀÇ °¡´É¼ºÀÌ ÀÖ´Â À妽º ÀÚü°¡ »ç¿ëµÇÁö ¾Ê°Ô ÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù (½ÇÁ¦·Î ÀÌ·¯ÇÑ ÄÉÀ̽º¿¡¼´Â ÆÄ¼ÕÇÑ À妽º¿¡ ÀÇÁ¸Çϰí ÀÖ¾ú±â ¶§¹®¿¡, ¼¹ö ÇÁ·Î¼¼½º°¡ ±âµ¿½Ã¿¡ °Á¦ Á¾·áÇØ ¹ö¸± °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù). ¾ÈÀüÇÏ°Ô º¹±¸½ÃŰ·Á¸é ½Ã½ºÅÛ Ä«Å»·Î±× °Ë»ö½ÃÀÇ À妽ºÀÇ »ç¿ëÀ» ±ÝÁöÇÑ´Ù. -P¿É¼ÇÀ» »ç¿ëÇØ ¼¹ö¸¦ ±âµ¿ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
»ý°¢µÇ´Â ¹æ¹ýÀÇ Çϳª´Â ´ÙÀ½ÀÇ ¹æ¹ýÀÔ´Ï´Ù. ¿ì¼± ¼¹ö¸¦ Á¤ÁöÇØ ¸í·É ¶óÀÎÀ¸·ÎºÎÅÍ-P¿É¼ÇÀ» ÁöÁ¤ÇØ ½Ì±Û À¯Àú »óÅÂÀÇPostgreSQL¼¹ö¸¦ ±âµ¿ÇÕ´Ï´Ù. ±×¸®°í, º¹±¸¼º ÇÏ´Â ¹üÀ§¿¡ ÀÀÇØ REINDEX DATABASE, REINDEX SYSTEM, REINDEX TABLE ¶Ç´Â REINDEX INDEX ¸í·ÉÀ» ¹ßÇàÇÕ´Ï´Ù. ¹üÀ§°¡ ºÒ¸íÇÑ °æ¿ì´Â REINDEX SYSTEM¸¦ »ç¿ëÇØ, ±× µ¥ÀÌÅͺ£À̽ºÀÇ ¸ðµç ½Ã½ºÅÛ À妽º¸¦ º¹±¸ ÀÌ·ç¾î ÁÖ¼¼¿ä. ±× ÈÄ, ½Ì±Û À¯Àú »óÅÂÀÇ ¼¹ö ¼¼¼ÇÀ» Á¤ÁöÇØ º¸Åë ¼¹ö¸¦ Àç±âµ¿ÇÕ´Ï´Ù. ½Ì±Û À¯Àú »óÅÂÀÇ ¼¹ö ÀÎÅÍÆäÀ̽ºÀÇ Á¶ÀÛ ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº postgres ¸Þ´º¾ó ÆäÀÌÁö¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
±× ¿Ü, ¸í·É ¶óÀÎÀ¸·Î-P¸¦ ÁöÁ¤ÇØ Á¤±Ô ¼¹ö ¼¼¼ÇÀ» ½ÃÀÛÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±¸Ã¼ÀûÀÎ ¹æ¹ýÀº Ŭ¶óÀÌ¾ðÆ®¿¡ µû¶ó¼ ´Ù¸¨´Ï´Ù. ±×·¯³ª libpqº£À̽ºÀÇ Å¬¶óÀÌ¾ðÆ®¸é, ¤»Å¬¶óÀÌ¾ðÆ®¸¦ ½ÃÀÛÇϱâ Àü¿¡PGOPTIONSȯ°æ º¯¼ö¸¦-P·Î ¼³Á¤ÇÏ¸é ½ÇÇöµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ý¿¡¼´Â ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ®¸¦ ³»ÂÑÀ» ÇÊ¿ä´Â ¾ø½À´Ï´Ù¸¸, º¹±¸°¡ ³¡³¯ ¶§±îÁö ÆÄ¼ÕÇÑ µ¥ÀÌÅͺ£À̽º¿¡ÀÇ ´Ù¸¥ »ç¿ëÀÚÀÇ Á¢¼ÓÀ» ¹æÁöÇÏ´Â ÆíÀÌ ÁÁÀº °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.
°øÀ¯ ½Ã½ºÅÛ Ä«Å»·Î±× (pg_authid, pg_auth_members, pg_database, pg_pltemplate, pg_shdepend, pg_shdescription, pg_tablespace)ÀÇ ¸î°³ÀÇ À妽º°¡ ÆÄ¼ÕÇÑ ÇøÀǰ¡ ÀÖ´Â °æ¿ì´Â µ¶¸³Çü ¼¹ö¸¦ »ç¿ëÇØ º¹±¸µÇ¾î¾ß ÇÕ´Ï´Ù. REINDEX´Â, multiuser ¸ðµå¿¡¼´Â °øÀ¯ īŻ·Î±×¸¦ ó¸®ÇÏÁö ¾Ê½À´Ï´Ù.
°øÀ¯ ½Ã½ºÅÛ Ä«Å»·Î±× Á¦¿ÜµÈ ¸ðµç À妽º¿¡¼´Â REINDEX´Â crash-safe ÀÌ°í Æ®·£Àè¼Ç(transaction) safe ÀÔ´Ï´Ù. ´Ù¸¸, °øÀ¯ À妽º¿¡ ´ëÇÑREINDEX´Â crash-safe°¡ ¾Æ´Õ´Ï´Ù. À̰ÍÀÌ, Åë»óÀÇ ¿î¿ë »óÅ·Π½ÇÇàÇÒ ¼ö ¾ø´Â ÀÌÀ¯ÀÔ´Ï´Ù. µ¶¸³Çü ¸ðµå·Î, ÀÌ·¯ÇÑ Ä«Å»·Î±×ÀÇ À妽º ÀçÀÛ¼º ó¸®Áß¿¡ ¹®Á¦°¡ ¹ß»ýÇßÀ» °æ¿ì, ¹®Á¦°¡ ¼öÁ¤µÉ ¶§±îÁö ±ÔÁ¤ ¼¹ö¸¦ Àç±âµ¿ÇÒ ¼ö°¡ ¾ø°Ô µË´Ï´Ù (°øÀ¯ À妽ºÀÇ À籸ÃàÀÌ ºÒÃæºÐÇÑ °ÍÀ» ³ªÅ¸³»´Â ÀüÇüÀûÀÎ Áõ»óÀ¸·Î¼ "index is not a btree"¶ó°í ÇÏ´Â ¿¡·¯°¡ ¹ß»ýÇÏ´Â ÀÏÀÌ ÀÚÁÖ ÀÖ½À´Ï´Ù).
REINDEX´Â ÀÎÅØ½º¸¦ »èÁ¦Çϰųª Á¦°Å·Î ÀÎÇØ À籸ÃàµÈ À妽º ³»¿ë ÀçÀÛ¼ºÇÏ´Â °Í°ú ºñ½ÁÇÕ´Ï´Ù. ±×·¯³ª, ¶ô¿¡ °üÇØ¼´Â ´Ù¸¨´Ï´Ù. REINDEX´Â À妽ºÀÇ ¿øÀÌ µÇ´Â Å×À̺íÀÇ ±âÀÔÀ» Àá±Þ´Ï´Ù¸¸, Àбâ´Â Àá±×Áö ¾Ê½À´Ï´Ù. ¶Ç, ó¸®ÁßÀÇ À妽º¿¡ ´ëÇÑ ¹èŸ ¶ôÀ» ÃëµæÇϹǷÎ, ±× À妽º¸¦ »ç¿ëÇÏ´Â Àбâ´Â ¸·Èü´Ï´Ù. ÇÑÆí, DROP INDEX´Â ¼ø°£ÀûÀ¸·Î ¿øÀÌ µÇ´Â Å×À̺íÀÇ ¹èŸ ¶ôÀ» ÃëµæÇϹǷÎ, ±âÀÔµµ Àб⵵ ¸·Èü´Ï´Ù. ±× ÈÄ¿¡ ½Ç½ÃÇÏ´ÂCREATE INDEX¿¡¼´Â ±âÀÔ¸¸À» Àá±×¾î, Àбâ´Â Àá±×Áö ¾Ê½À´Ï´Ù. À妽º´Â Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®¿¡, À妽º¸¦ »ç¿ëÇÏ´Â Àбâ´Â ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. µû¶ó¼, ÀбⰡ ¸·È÷Áö ¾ÊÀ¸³ª °¡°ÝÀÌ ºñ½Ñ ¼øÂ÷ÀûÀÎ ½ºÄµÀÇ »ç¿ëÀ» °Á¦´çÇÏ°Ô µË´Ï´Ù. ¶Ç ´Ù¸¥ Áß¿äÇÑ Æ÷ÀÎÆ®´Â »èÁ¦/»ý¼ºÀÌ REINDEX »ç¿ëÇÏÁö ¾Ê´Â µ¿¾È À妽º¸¦ »ç¿ëÇϴ ij½ÃµÈ Äõ¸®ÀÇ °èȹÀ» ¹«È¿·Î ¸¸µé °ÍÀÔ´Ï´Ù.
´ÜÀÏ À妽º ¶Ç´Â ´ÜÀÏ Å×À̺íÀÇ À妽º ÀçÀÛ¼ºÀ» ½Ç½ÃÇÏ·Á¸é , ±× À妽º ¶Ç´Â Å×À̺íÀÇ ¼ÒÀ¯ÀÚ°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ À妽º ÀçÀÛ¼ºÀ» ½Ç½ÃÇÏ·Á¸é , µ¥ÀÌŸº£À̽ºÀÇ ¼ÒÀ¯ÀÚ°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù (±×·¯¹Ç·Î ÀÌ ¼ÒÀ¯ÀÚ´Â ´Ù¸¥ À¯Àú°¡ ¼ÒÀ¯ÇÏ´Â Å×À̺íÀÇ À妽º¸¦ ÀçÀÛ¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù). ¹°·Ð, ½´ÆÛ À¯Àú´Â Ç×»ó ¸ðµç À妽º ÀçÀÛ¼ºÀ» ½Ç½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
PostgreSQL 8.1º¸´Ù Àü±îÁö¿¡¼´Â REINDEX DATABASE´Â À̸§À¸·ÎºÎÅÍ ¿¹»óµÇ´Â ¸ðµç À妽º¿¡ ´ëÇÑ Ã³¸®´Â ¾Æ´Ï°í, ½Ã½ºÅÛ À妽º¸¸À» ó¸®Çϰí ÀÖ¾ú½À´Ï´Ù. ÀÌ °ÍÀº ÀÇ¿ÜÀÇ ¿ä¼Ò¸¦ ÁÙÀÌ´Â °Í¿¡¼ ¹Ù²î°ï ÇÕ´Ï´Ù. REINDEX SYSTEM·Î, ÀÌ ÀÌÀüÀÇ Ã³¸®¸¦ ½Ç½ÃÇÏ°Ô ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
PostgreSQL 7.4º¸´Ù Àü±îÁö´Â REINDEX TABLE´Â TOAST Å×ÀÌºí¿¡ ´ëÇØ¼ ÀÚµ¿ÀûÀ¸·Î 󸮸¦ ½Ç½ÃÇÏÁö ¾Ê¾Ò½À´Ï´Ù. ±× ¶§¹®¿¡ ´Ù¸¥ ¸í·ÉÀ¸·Î À妽º¸¦ ÀçÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÇöÀç¿¡µµ À̰ÍÀº °¡´ÉÇÕ´Ï´Ù¸¸, Áߺ¹µË´Ï´Ù.
´ÜÀÏÀÇ À妽º¸¦ À籸Ãà ÇÕ´Ï´Ù.
REINDEX INDEX my_index;
my_tableÅ×À̺í»óÀÇ ¸ðµç À妽º¸¦ À籸Ãà ÇÕ´Ï´Ù.
REINDEX TABLE my_table;
½Ã½ºÅÛ À妽º°¡ À¯È¿ÇѰ¡ ¾î¶²°¡¸¦ È®ÀÎÇÏ´Â ÀÏ ¾øÀÌ, Ưº°ÇÑ µ¥ÀÌÅͺ£À̽º³»ÀÇ ¸ðµç À妽º¸¦ À籸Ãà ÇÕ´Ï´Ù.
$ export PGOPTIONS="-P" $ psql broken_db ... broken_db=> REINDEX DATABASE broken_db; broken_db=> \q