| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ]
name
ON
table
[ USING
method
]
( {
column
| (
expression
) } [
opclass
] [, ...] )
[ WITH (
storage_parameter
=
value
[, ... ] ) ]
[ TABLESPACE
tablespace
]
[ WHERE
predicate
]
CREATE INDEX´Â, ÁöÁ¤ÇÑ Å×À̺í»ó¿¡ name À妽º¸¦ ¸¸µì´Ï´Ù. À妽º´Â ÁÖ·Î µ¥ÀÌŸº£À̽ºÀÇ ¼º´ÉÀ» Çâ»óÇϱâ À§Çؼ »ç¿ëµË´Ï´Ù. (±×·¯³ª, À妽ºÀÇ ºÎÀûÀýÇÑ »ç¿ëÀº ¼º´ÉÀÇ ÀúÇÏ·Î ¿¬°áµÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù).
À妽ºÀÇ Å°Çʵå´Â, ¿¸í, ¶Ç´Â °ýÈ£¿¡ µÑ·¯½ÎÀÎ ½ÄÀ¸·Î¼ ÁöÁ¤µË´Ï´Ù. À妽º ¸Þ¼Òµå°¡ º¹¼ö¿¿¡ ´ëÇÑ À妽º¸¦ Áö¿øÇÏ´Â °æ¿ì´Â, º¹¼öÀÇ Çʵ带 ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
À妽ºÀÇ Çʵå·Î¼ Å×À̺íÇàÀÇ ÇÑ °³ ¶Ç´Â ÇÑ °³ ÀÌ»óÀÇ ¿ÀÇ °ªÀ» °è»êÇÏ´Â ½ÄÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±â´ÉÀº, ±âº» µ¥ÀÌÅÍ¿¡ ¾à°£ÀÇ º¯È¯À» ´õÇÑ °ªÀ» ±âÃÊ·Î ÇÏ´Â µ¥ÀÌÅÍ¿¡ ºü¸¥ ¾×¼¼½º¸¦ ½ÇÇàÇÏ´Â ¼ö´ÜÀ¸·Î¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é,upper(col)¶ó°í ÇÏ´Â °è»ê¿¡ ±Ù°ÅÇÏ´Â À妽º°¡ ÀÖÀ¸¸é,WHERE upper(col) = 'JIM'±¸¿¡¼´Â À妽º¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
PostgreSQL´Â B-tree, hash, GiST, GINÀÇ À妽º ¸Þ¼Òµå¸¦ Á¦°ø ÇÕ´Ï´Ù. »ç¿ëÀÚ°¡ µ¶ÀÚÀûÀ¸·Î À妽º ¸Þ¼Òµå¸¦ Á¤ÀÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù¸¸, À̰ÍÀº »ó´çÈ÷ º¹ÀâÇÕ´Ï´Ù.
WHERE±¸°¡ Á¸ÀçÇÏ´Â °æ¿ì,ºÎºÐ À妽º°¡ ÀÛ¼ºµË´Ï´Ù. ºÎºÐ À妽º´Â, Å×À̺íÀÇ ÀϺÎ, Åë»óÀº, Å×À̺í Áß ¿¡¼ º¸´Ù À妽º°¡ À¯¿ëÇÑ ºÎºÐ¸¸ÀÇ ¿£Æ®¸®¸¦ °¡Áö´Â À妽ºÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, ÁöºÒ ³¡³ ÁÖ¹®°ú ¹ÌÁöºÒÀÇ ÁÖ¹®À» Á¤º¸·Î °¡Áö´Â Å×À̺íÀÌ ÀÖ¾î, Å×À̺í Àüü¿¡ ÀÖ¾î¼ÀÇ ¹ÌÁöºÒÀÇ ÁÖ¹®ÀÇ ºñÀ²ÀÌ ÀÛ°í, ÇÑÆí, ºó¹øÇÏ°Ô »ç¿ëµÇ´Â °æ¿ì, ¹ÌÁöºÒÀÇ ÁÖ¹®¿¡¸¸ À妽º¸¦ ÀÛ¼ºÇÏ´Â °ÍÀ¸·Î ¼º´ÉÀ» Çâ»óÇÒ ¼ö ÀÖ½À´Ï´Ù. ºÎºÐ À妽ºÀÇ ±× ¿ÜÀÇ ÀÌ¿ë ¹æ¹ýÀ¸·Î¼UNIQUE÷ºÎÀÇWHERE¸¦ »ç¿ëÇØ, Å×À̺íÀÇ ÀϺο¡ ÀÏÀǼºÀ» °Á¦ÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºSection 11.7À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
WHERE±¸ ³»¿¡¼ »ç¿ëµÈ ½ÄÀº, ¿ø·¡ÀÇ Å×À̺íÀÇ ¿¸¸À» ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, À妽º¸¦ ºÎ°¡ÇÏ´Â ¿ ¸¸ÀÌ ¾Æ´Ï°í, ¸ðµç ¿À» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¶Ç, ÇöÀç, ¼ºêÄõ¸®¿Í Áý°è½Ä¿¡ ´ëÇØ¼´Â,WHERE·Î »ç¿ëÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. µ¿ÀÏÇÑ Á¦ÇÑÀº, ½Ä¿¡ ÀÖ´Â À妽ºÀÇ Çʵ忡µµ Àû¿ëµË´Ï´Ù.
À妽ºÀÇ Á¤ÀÇ·Î »ç¿ëµÇ´Â ¸ðµç ÇÔ¼ö¿Í ¿¬»êÀÚ´Â,"ºÒº¯"(immutable)ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Áï, °á°ú´Â ÀÔ·Â Àμö¿¡°Ô¸¸¿¡ ÀÇÁ¸ÇØ¾ß Çϰí,¿ÜºÎ·ÎºÎÅÍÀÇ ¿µÇâ(´Ù¸¥ Å×À̺íÀÇ ³»¿ëÀ̳ª Áö±Ý ½Ã°¢°ú °°Àº) À» ¹Þ¾Æ¼´Â ¾ÈµË´Ï´Ù. ÀÌ Á¦ÇÑ¿¡ ÀÇÇØ, À妽ºÀÇ µ¿ÀÛÀÌ ÃæºÐÈ÷ Á¤Àǵǰí ÀÖ´Â °ÍÀÌ º¸ÁõµË´Ï´Ù. À妽º½ÄÀ̳ªWHERE±¸¿¡ »ç¿ëÀÚ Á¤ÀÇÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °æ¿ì, ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ ¶§, IMMUTABLE(ºÒº¯) ¿É¼ÇÀ» ºÙÀÌ´Â °ÍÀ» ±â¾ïÇØ µÎ¼¼¿ä.
À妽º¸¦(ÀÌ¹Ì µ¥ÀÌÅͰ¡ ÀÖ´Â »óÅ·Î) ÀÛ¼ºÇÒ ¶§, Å×ÀÌºí¿¡ ½Ã°£ µ¥ÀÌÅ͸¦ Ãß°¡ÇÒ ¶§¿¡, Å×ÀÌºí ³»ÀÇ °ªÀÌ Áߺ¹ Çϰí ÀÖÁö ¾Ê´Â°¡¸¦ °Ë»çÇÕ´Ï´Ù. Áߺ¹ ¿£Æ®¸®¸¦ »ý¼ºÇÏ´Â µ¥ÀÌÅÍÀÇ »ðÀÔ ¶Ç´Â °»½ÅÀº ¿¡·¯¸¦ ¹ß»ý ½Ãŵ´Ï´Ù.
ÀÌ ¿É¼ÇÀ» »ç¿ëÇϸé,PostgreSQL´Â, ´ë»ó Å×ÀÌºí¿¡ ´ëÇÑ µ¿½Ã »ðÀÔ, °»½Å, »èÁ¦¸¦ ¹æÁöÇÏ´Â °Í °°Àº ¶ôÀ» ȹµæÇÏÁö ¾Ê°í À妽º¸¦ ÀÛ¼ºÇÕ´Ï´Ù. Ç¥ÁØ À妽º ÀÛ¼º 󸮿¡¼´Â, ¿Ï·áÇÒ ¶§±îÁö ´ë»ó Å×ÀÌºí¿¡ÀÇ ±âÀÔ¿¡ ¶ôÀÌ °É¸³´Ï´Ù(Àб⿡´Â ¶ôÀÌ °É¸®Áö ¾Ê½À´Ï´Ù). ÀÌ ¿É¼ÇÀ» »ç¿ëÇÒ ¶§¿¡ ÁÖÀÇÇØ¾ß ÇÒ Á¡ÀÌ ´Ù¼ö ÀÖ½À´Ï´Ù. Building Indexes Concurrently (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÀÛ¼ºÇÏ´Â À妽ºÀÇ À̸§ÀÔ´Ï´Ù. ÀÌ À̸§¿¡´Â, ½ºÅ°¸¶¸íÀ» Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. À妽º´Â, Ç×»ó ±× ºÎ¸ð Å×À̺í°ú °°Àº ½ºÅ°¸¶¿¡¼ ÀÛ¼ºµË´Ï´Ù.
À妽º¸¦ ÀÛ¼ºÇÏ´Â Å×À̺íÀÇ À̸§(°ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶)ÀÔ´Ï´Ù.
»ç¿ëÇÏ´Â À妽º ¸Þ¼ÒµåÀÇ À̸§ÀÔ´Ï´Ù. btree,hash,gist,gin·ÎºÎÅÍ ¼±ÅÃÇÕ´Ï´Ù. µðÆúÆ® ¸Þ¼Òµå´ÂbtreeÀÔ´Ï´Ù.
Å×À̺íÀÇ ¿ÀÇ À̸§ÀÔ´Ï´Ù.
Å×ÀÌºí »óÀÇ Çϳª ¶Ç´Â Çϳª ÀÌ»óÀÇ ¿À» »ç¿ëÇÑ ½ÄÀÔ´Ï´Ù. Åë»ó ÀÌ ½ÄÀº, ±¸¹®¿¡¼ º¸¿©Áø ´ë·Î °ýÈ£·Î µÑ·¯½Ò Çʿ䰡 ÀÖ½À´Ï´Ù. ±×·¯³ª, ½ÄÀÌ ÇÔ¼ö È£Ãâ Çü½ÄÀÌ µÇ¾î ÀÖ´Â °æ¿ì´Â °ýÈ£¸¦ »ý·« ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¿¬»êÀÚ Å¬·¡½ºÀÇ À̸§ÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¾Æ·¡¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
À妽º °íÀ¯ÀÇ °Ý³³ ÆÄ¶ó¹ÌÅÍÀÇ À̸§ÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¾Æ·¡¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
À妽º¸¦ »ý¼ºÇÏ´Â Å×ÀÌºí½ºÆäÀ̽ºÀÔ´Ï´Ù. ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì, default_tablespace¸¦ »ç¿ëÇϰųª ¶Ç´Â, default_tablespace ¿¡ ¹®ÀÚ¿ÀÌ ¾ø´Â °æ¿ì¿¡ µ¥ÀÌÅͺ£À̽ºÀÇ µðÆúÆ® Å×ÀÌºí½ºÆäÀ̽º¸¦ »ç¿ëÇϼ¼¿ä.
ºÎºÐ À妽º¿ëÀÇ Á¦¾à½ÄÀÔ´Ï´Ù.
WITH±¸¿¡¼´Â, À妽º¿¡ ´ëÇØ°Ý³³ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. À妽º ¸Þ¼Òµå´Â °¢°¢ °íÀ¯ÀÇ ¼³Á¤ °¡´ÉÇÑ °Ý³³ ÆÄ¶ó¹ÌÅ͸¦ °¡Áú ¼ö°¡ ÀÖ½À´Ï´Ù. ³»ÀåµÈ À妽º´Â ¸ðµÎ ÇϳªÀÇ ¸Å°³º¯¼ö¸¦ ÃëÇÕ´Ï´Ù.
À妽º¿ëÀÇ fillfactor´Â ºñÀ²(ÆÛ¼¾Æ®)·Î, À妽º ¸Þ¼Òµå°¡ À妽º ÆäÀÌÁö¸¦ Á¤¸®ÇÒ ¶§ ¿¡ ¾î´À Á¤µµ ÆäÀÌÁö¸¦ »ç¿ëÇұ °áÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. B-tree¿¡¼´Â, ¸®ÇÁ ÆäÀÌÁö´Â Ãʱâ À妽º ±¸Ãà½Ã¿Í ¿ìÃø(۰ªÀÌ Å« ¹æÇâ)À¸·Î À妽º¸¦ È®ÀåÇÒ ¶§¿¡ ÀÌ ºñÀ²ºÐ ÆäÀÌÁö¸¦ »ç¿ëÇÕ´Ï´Ù. ±× ÈÄ ÆäÀÌÁö ¸ðµç °ÍÀÌ ¿ÏÀüÇÏ°Ô »ç¿ëµÇ¸é, À妽ºÀÇ È¿°ú°¡ Á¡Â÷ ÀúÇϵǵµ·Ï ºÐÇҵ˴ϴÙ. B-treeÀÇ µðÆúÆ®ÀÇ fillfactor´Â 90ÀÔ´Ï´Ù¸¸, 10¿¡¼ 100±îÁöÀÇ ÀÓÀÇÀÇ °ªÀ» ¼³Á¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Å×À̺íÀÇ º¯È°¡ °ÅÀÇ ¾ø´Â °æ¿ì, 100ÀÌ ÃÖ¼±À¸·Î À妽ºÀÇ ¹°¸® »çÀÌÁ ÃÖ¼ÒÈÇÒ ¼ö ÀÖ½À´Ï´Ù. °»½ÅÀÌ ¸Å¿ì ¸¹Àº °æ¿ì´Â, º¸´Ù ÀÛÀº fillfactor¸¦ ¼³Á¤ÇÏ´Â °ÍÀ¸·Î, ÆäÀÌÁö ºÐÇÒÀÇ ºóµµ¸¦ ÁÙÀÏ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ´Ù¸¥ À妽º ¸Þ¼Òµå¿¡¼´Â, fillfactor°¡ ´ëü·Î °°½À´Ï´Ù¸¸, ´Ù¸¥ Àǹ̷Π»ç¿ëÇÕ´Ï´Ù. ¸Þ¼Òµå¿¡ ÀÇÇØ fillfactorÀÇ µðÆúÆ® °ªÀº ´Ù¸¨´Ï´Ù.
À妽ºÀÇ ÀÛ¼ºÀÌ, Åë»óÀÇ µ¥ÀÌÅͺ£À̽º Á¶ÀÛ¿¡ ¿µÇâÀ» ÁÖ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. Åë»ó PostgreSQL´Â, ´ë»ó Å×ÀÌºí¿¡ ´ëÇÑ ±âÀÔ¿¡ ¶ôÀ» °É°í ³ µÚ, ´ë»ó Å×À̺íÀ» ÇÑ ¹ø ½ºÄµÇÑ °ÍÀ¸·Î Àüü À妽ºÀÇ ±¸ÃàÀ» ½ÇÇàÇÕ´Ï´Ù. ´Ù¸¥ Æ®·£Àè¼ÇÀº Å×À̺íÀ» Àо ¼ö ÀÖ½À´Ï´Ù¸¸, ´ë»ó Å×ÀÌºí³»ÀÇ ÇàÀ» »ðÀÔ, °»½Å, »èÁ¦ÇÏ·Á°í Çϸé, À妽º ÀÛ¼ºÀÌ ¿Ï·áÇÒ ¶§±îÁö ºí·Ï µË´Ï´Ù. Ȱ¹ßÇÑ ¿î¿ë »óÅÂÀÇ µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛÀÇ °æ¿ì, À̰ÍÀº Áß´ëÇÑ ¿µÇâÀ» ÁÝ´Ï´Ù. ¸Å¿ì ´ë±Ô¸ð Å×ÀÌºí¿¡ ´ëÇÑ À妽º ÀÛ¼ºÀº ¸î ½Ã°£À̳ª °É¸®´Â °ÍÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¶Ç ¼Ò±Ô¸ðÀÇ Å×À̺íÀ̾, À妽º ÀÛ¼º¿¡ ÀÇÇØ, ¿î¿ë »óÅÂÀÇ ½Ã½ºÅÛ¿¡¼´Â ¹Þ¾Æµé¿©ÁöÁö ¾Ê´Â ±â°£ µ¿¾È, ±âÀÔ ¶ôÀÌ °É¸± °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
PostgreSQL´Â ±âÀÔ¿¡ ¶ôÀ» °ÉÁö ¾Ê°í, À妽º ÀÛ¼ºÀ» Áö¿øÇϰí ÀÖ½À´Ï´Ù. CREATE INDEXÀÇCONCURRENTLY¿É¼ÇÀ» ÁöÁ¤ÇÏ¿©, ÀÌ ¹æ½ÄÀÌ °ÅÇàµË´Ï´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇϸé,PostgreSQL´Â Å×À̺íÀ» 2ȸ ½ºÄµ ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. °Ô´Ù°¡ ±âÁ¸ÀÇ ½ÇÇàÁßÀÎ ¸ðµç Æ®·£Àè¼ÇÀÌ ³¡³¯ ¶§±îÁö ´ë±âÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. µû¶ó¼, ÀÌ ¹æ½ÄÀº Ç¥ÁØ À妽º ÀÛ¼ºÀÇ ¹æ½Äº¸´Ù ÃÑ ÀÛ¾÷½Ã°£ÀÌ ´õ °É·Á, ¶Ç, ¿Ï·áÇÒ ¶§±îÁöÀÇ ½Ã°£ÀÌ ¸Å¿ì ±æ¾îÁý´Ï´Ù. ±×·¯³ª, À妽º ÀÛ¼ºÁß¿¡ Åë»óÀÇ Á¶ÀÛÀ» °è¼Ó ½Ç½ÃÇÒ ¼ö Àֱ⠶§¹®¿¡, ÀÌ ¹æ½ÄÀº ¿î¿ë ȯ°æ¿¡¼ÀÇ ½Å±Ô À妽º ÀÛ¼º¿¡ À¯¿ëÇÕ´Ï´Ù. ¹°·Ð, À妽º ÀÛ¼º¿¡ ÀÇÇØ CPU³ª ÀÔÃâ·Â¿¡ ºÎÇϰ¡ °É¸®±â ¶§¹®¿¡, ´Ù¸¥ Á¶ÀÛÀÌ Àú¼ÓÀÌ µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
ÀÏÀǼº À妽º¿¡ ÀÖ¾î¼ÀÇ ÀÏÀǼº À§¹Ý µî, Å×À̺íÀÇ 2¹øÂ° ½ºÄµÁß¿¡ ¹®Á¦°¡ ¹ß»ýÇϸé,CREATE INDEX´Â ½ÇÆÐÇÕ´Ï´Ù¸¸,"¹«È¿ÀÎ"À妽º°¡ ³²°Ô µË´Ï´Ù. ÀÌ·¯ÇÑ À妽º´Â ¿ÏÀüÇÏÁö ¾ÊÀ» ¼ö Àֱ⠶§¹®¿¡, Äõ¸®¿¡¼´Â ¹«½ÃµË´Ï´Ù. ±×·¯³ª, °»½Å½Ã¿¡ ¿À¹öÇìµå°¡ °É¸³´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ìÀÇ Ãßõ º¹±¸ ¹æ¹ýÀº, À妽º¸¦ »èÁ¦ÇØ, ÀçÂ÷CREATE INDEX CONCURRENTLY¸¦ ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù. (±× ¹Û¿¡µµREINDEX¸¦ »ç¿ëÇÑ À妽º¸¦ ÀçÀÛ¼º ÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù. ±×·¯³ª,REINDEX´Â µ¿½Ã ÀÛ¼ºÀ» Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡, ÀÌ ¹æ¹ýÀº ¸Å·ÂÀÌ ¾ø½À´Ï´Ù. )
ÀÌ ±× ¹Û¿¡ ÀÏÀǼº À妽º¸¦ µ¿½Ã ÀÛ¼ºÇÏ´Â °æ¿ìÀÇ ÁÖÀÇ »çÇ×ÀÌ ÀÖ½À´Ï´Ù. 2¹øÂ°ÀÇ Å×ÀÌºí ½ºÄµÀÌ ½ÃÀ۵Ǵ ½ÃÁ¡¿¡¼, ´Ù¸¥ Æ®·£Àè¼Ç¿¡ ´ëÇÑ ÀÏÀǼº Á¦¾àÀÌ ÀÌ¹Ì À¯È¿ÇÏ´Ù´Â Á¡ÀÔ´Ï´Ù. À̰ÍÀº, À妽º¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ±â ÀüÀ̳ª À妽º ÀÛ¼ºÀÌ ÃÖÁ¾ÀûÀ¸·Î ½ÇÆÐÇß´Ù°í ÇØµµ, Á¦¾à À§¹ÝÀÌ ´Ù¸¥ Äõ¸®¿¡ º¸°íµÇ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ¶ÇÇÑ, 2¹øÂ°ÀÇ ½ºÄµ Áß¿¡ ½ÇÆÐÇÑ °æ¿ìµµ,"¹«È¿ÀÎ"À妽º¿¡ ÀÇÇÑ ÀÏÀǼº Á¦¾àÀº °è¼Ó °¿ä µË´Ï´Ù.
½Ä À妽º³ª ºÎºÐ À妽ºÀÇ µ¿½Ã ÀÛ¼ºµµ Áö¿øµÇ°í ÀÖ½À´Ï´Ù. ½ÄÀÇ Æò°¡Áß¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìµµ, À§¿¡¼ ¼³¸íÇÑ ÀÏÀǼº Á¦¾à À§¹Ý°ú °°Àº »óȲÀÌ ¹ß»ýÇÕ´Ï´Ù.
µ¿ÀÏ Å×ÀÌºí¿¡ ´ëÇÑ Åë»óÀÇ À妽º ÀÛ¼º 󸮴 º¹¼ö º´ÇàÇØ ½Ç½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯³ª, ¾î´À Å×ÀÌºí¿¡ ´ëÇÑ À妽ºÀÇ µ¿½Ã ÀÛ¼ºÀº ÇÑ ¹ø¿¡ 1°³ ¹Û¿¡ ½Ç½ÃÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. ¶Ç, ¾î´À °æ¿ì¿¡¼µµ À妽º ÀÛ¼ºÁß¿¡ Å×ÀÌºí »óÀÇ ½ºÅ°¸¶ º¯°æÀº ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ ±× ¹Û¿¡, Åë»óÀÇCREATE INDEXÄ¿¸àµå´Â Æ®·£Àè¼Ç ºí·Ï³»¿¡¼ ½ÇÇà½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù¸¸,CREATE INDEX CONCURRENTLY´Â ½ÇÇà½Ãų ¼ö°¡ ¾ø´Ù°í ÇÏ´Â Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù.
À妽º°¡, ¾î¶°ÇÑ ¶§¿¡ »ç¿ëµÇ¾î ¾î¶°ÇÑ ¶§¿¡ »ç¿ëµÇÁö ¾Ê´Â°¡, ¶Ç, ¾î¶°ÇÑ °æ¿ì¿¡ À¯¿ëÇÑ °Í¿¡ °üÇÑ Á¤º¸¿¡ ´ëÇØ¼´ÂChapter 11À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÇöÀç´Â, B-tree¿Í GiST À妽º ¸Þ¼Òµå¸¸ÀÌ, º¹¼ö¿¿¡ ´ëÇÑ À妽º¸¦ Áö¿øÇϰí ÀÖ½À´Ï´Ù. ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¿Àº, µðÆúÆ®¿¡¼´Â 32°³±îÁöÀÔ´Ï´Ù(ÀÌ Á¦ÇÑÀºPostgreSQL±¸Ãà ½Ã¿¡ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù). ÇöÀç, B-tree¸¸ÀÌ ÀÏÀǼº À妽º¸¦ Áö¿øÇϰí ÀÖ½À´Ï´Ù.
¿¬»êÀÚ Å¬·¡½º´Â, À妽ºÀÇ °¢°¢ÀÇ ¿·Î ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º´Â, ±× ¿ÀÇ À妽º°¡ »ç¿ëÇÏ´Â ¿¬»êÀÚ¸¦ ½Äº°ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, 4¹ÙÀÌÆ® Á¤¼ö¿¡ ´ëÇÑ B-tree À妽º¿¡´Â,int4_opsŬ·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¿¬»êÀÚ Å¬·¡½º¿¡´Â, 4¹ÙÀÌÆ® Á¤¼öÀÇ ºñ±³ ÇÔ¼ö°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ½ÇÁ¦ÀÇ »ç¿ë¿¡¼´Â, Åë»ó, ¿ÀÇ µ¥ÀÌÅÍÇüÀÇ µðÆúÆ® ¿¬»êÀÚ Å¬·¡½º¿¡¼ ÃæºÐÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º¸¦ °®´Â ÁÖµÈ ÀÌÀ¯´Â, µ¥ÀÌÅÍÇü¾È¿¡´Â Àǹ̰¡ ÀÖ´Â ¼ø¼¸¦ 2°³ ÀÌ»ó °¡Áö´Â °ÍÀÌ ÀÖÀ» ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, Àý´ë°ª ¶Ç´Â ½Ç¼öºÎ¸¦ »ç¿ëÇØ º¹¼Ò¼öÀÇ µ¥ÀÌÅÍÇüÀ» Á¤·Ä ÇÏ°í ½ÍÀº °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀ» ½ÇÇöÇÏ·Á¸é , µ¥ÀÌÅÍÇüÀ¸·Î¼ 2°³ÀÇ ¿¬»êÀÚ Å¬·¡½º¸¦ Á¤ÀÇÇØ, À妽º¸¦ ¸¸µé ¶§¿¡ ÀûÀýÇÑ Å¬·¡½º¸¦ ¼±ÅÃÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº,Section 11.8¹×Section 33.14¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
À妽º¸¦ »èÁ¦ÇÏ·Á¸é, DROP INDEX ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.
À妽º´Â µðÆúÆ®·Î IS NULL±¸¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ °æ¿ì, À妽º¸¦ »ç¿ëÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀº, IS NULL¸¦ »ç¿ëÇÏ¿© ºÎºÐ À妽º¸¦ »ý¼ºÇÏ´Â °ÍÀÔ´Ï´Ù.
ÀÌÀüÀÇPostgreSQL¸±¸®½º¿¡´Â R-tree À妽º ¸Þ¼Òµå°¡ ÀÖ¾ú½À´Ï´Ù. GiST ¸Þ¼Òµå¿¡ ºñÇØ Å« ÀÌÁ¡ÀÌ ¾ø¾ú¾ú±â ¶§¹®¿¡, ÀÌ ¸Þ¼Òµå´Â »èÁ¦µÇ¾ú½À´Ï´Ù. ¿À·¡µÈ µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ GiST¿¡ÀÇ º¯È¯À» °£´ÜÇÏ°Ô Çϱâ À§ÇØ,USING rtree°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì,CREATE INDEX´ÂUSING gist¶ó°í ÇØ¼®ÇÕ´Ï´Ù.
filmsÅ×À̺íÀÇtitle¿¿¡ B-tree À妽º¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CREATE UNIQUE INDEX title_idx ON films (title);
´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â °Ë»öÀÌ È¿À²ÀûÀÌ µÇµµ·Ï,lower(title)½Ä¿¡ ´ëÇØ¼ À妽º¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CREATE INDEX lower_title_idx ON films ((lower(title)));
µðÆúÆ® ÀÌ¿ÜÀÇ fill ÆÑÅ͸¦ °¡Áö´Â À妽º¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CREATE UNIQUE INDEX title_idx ON films (title) WITH (fillfactor = 70);
filmsÅ×À̺í»óÀÇcode¿¿¡ ´ëÇÑ À妽º¸¦ ÀÛ¼ºÇϰí, ¶Ç, ÀÌ À妽º¸¦indexspaceÅ×ÀÌºí½ºÆäÀ̽º ³»¿¡ »ý¼ºÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ Çϼ¼¿ä.
CREATE INDEX code_idx ON films(code) TABLESPACE indexspace;
´ë»ó Å×ÀÌºí¿¡ÀÇ ±âÀÔ¿¡ ¶ôÀ» °ÉÁö ¾Ê°í, À妽º¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CREATE INDEX CONCURRENTLY sales_quantity_index ON sales_table (quantity);