REINDEX

Name

REINDEX -- À妽º¸¦ À籸Ãà ÇÑ´Ù

Synopsis

REINDEX { INDEX | TABLE | DATABASE | SYSTEM } 
name
 [ FORCE ]

¼³¸í

REINDEX´Â À妽ºÀÇ Å×ÀÌºí¿¡ º¸Á¸µÈ µ¥ÀÌÅ͸¦ »ç¿ëÇØ À妽º¸¦ À籸Ãà ÇÏ°í ±× À妽ºÀÇ ¿À·¡µÈ º¹»çº»À¸·Î ´ëüÇÕ´Ï´Ù. ÀÌÇÏ¿¡REINDEX°¡ »ç¿ëµÇ´Â »óȲÀ» ³ªÅ¸³À´Ï´Ù.

¸Å°³º¯¼ö

INDEX

ÁöÁ¤ÇÑ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù.

TABLE

ÁöÁ¤ÇÑ Å×À̺íÀÇ ÀüÀ妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù. Å×ÀÌºí¿¡ 2Â÷ÀûÀÎ"TOAST"Å×À̺íÀÌ À־, ¶È°°ÀÌ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù.

DATABASE

ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ ¸ðµç ½Ã½ºÅÛ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù. ¶Ç, stand-alone ¸ðµå(Èļú) ÀÌ¿ÜÀÇ ¸ðµå¿¡¼­´Â, °øÀ¯ ½Ã½ºÅÛ Ä«Å»·Î±×ÀÇ À妽º´Â 󸮵ÇÁö ¾Ê½À´Ï´Ù. ÀÌ ±¸¹®ÀÇREINDEX¸¦ Æ®·£Àè¼Ç(transaction) ºí·Ï³»¿¡¼­ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.

SYSTEM

ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ ¸ðµç ½Ã½ºÅÛ Ä«Å»·Î±×ÀÇ À妽º¸¦ ÀçÀÛ¼ºÇÕ´Ï´Ù. »ç¿ëÀÚ Å×À̺íÀÇ À妽º´Â 󸮵ÇÁö ¾Ê½À´Ï´Ù. ¶Ç, stand-alone ¸ðµå(Èļú) ÀÌ¿ÜÀÇ ¸ðµå¿¡¼­´Â °øÀ¯ ½Ã½ºÅÛ Ä«Å»·Î±×ÀÇ À妽º´Â 󸮵ÇÁö ¾Ê½À´Ï´Ù. ÀÌ ±¸¹®ÀÇREINDEX¸¦ Æ®·£Àè¼Ç(transaction) ºí·Ï³»¿¡¼­ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.

name

À妽º¸¦ ÀçÀÛ¼ºÇÏ´Â À妽º, Å×À̺í, µ¥ÀÌÅͺ£À̽ºÀÇ À̸§ÀÔ´Ï´Ù. À妽º¿Í Å×À̺íÀº schema·Î ¼ö½Ä °¡´ÉÇÕ´Ï´Ù. ÇöÀç »óÅ·μ­´Â REINDEX DATABASE¿Í REINDEX SYSTEM´Â ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ À妽º¸¸À» ÀçÀÛ¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡, ÀÌ ¸Å°³º¯¼ö´Â ÇöÀçÀÇ µ¥ÀÌÅͺ£À̽º¸íÀ¸·Î ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù.

FORCE

ÀÌ ¿É¼ÇÀº ÆóÁöµÇ¾ú½À´Ï´Ù. ÁöÁ¤µÇ¾îµµ ¹«½ÃµË´Ï´Ù.

ÁÖ¼®

Å×À̺íÀÇ À妽º°¡ ¼Õ»óµÇ¾ú´Ù¸é, 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

ȣȯ¼º

Ç¥ÁØ SQL¿¡´Â REINDEX´Â ¾ø½À´Ï´Ù.