| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 11. À妽º | Fast Forward | Next |
À妽º Á¤ÀÇ¿¡¼´Â À妽ºÀÇ °¢ ¿¿¡¿¬»êÀÚ Å¬·¡½º¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
CREATE INDEX
name
ON
table
(
column
opclass
[, ...]);
¿¬»êÀÚ Å¬·¡½º¿¡ ÀÇÇØ, ±× ¿ÀÇ À妽º·Î »ç¿ëµÇ´Â ¿¬»êÀÚ°¡ ½Äº°µË´Ï´Ù. ¿¹¸¦ µé¸é, int4ÇüÀÇ B-tree À妽º¿¡´Â int4_opsŬ·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¿¬»êÀÚ Å¬·¡½º¿¡´Â int4ÇüÀÇ °ªÀ» ºñ±³ ÇÔ¼ö°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î´Â º¸Åë, ¿ÀÇ µ¥ÀÌÅÍÇüÀÇ µðÆúÆ® ¿¬»êÀÚ Å¬·¡½º¿¡¼ ÃæºÐÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½ºÀÇ ÁÖµÈ ÀÇÀÇ´Â ÀǹÌÀÖ´Â À妽ºÀÇ ÇൿÀ» °¡Áö´Â ¸î °³ÀÇ µ¥ÀÌÅÍÇü¿¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, º¹ÀâÇÑ ¼ýÀÚ µ¥ÀÌÅÍÇüÀ», Àý´ë °ª°ú ½ÇÁ¦ ºÎºÐÀ¸·Î Á¤·Ä(sorting) ÇÒ Çʿ䰡 ÀÖ´Ù°í ÇսôÙ. ÀÌ Ã³¸®´Â ±× µ¥ÀÌÅÍÇüÀÇ 2°³ÀÇ ¿¬»êÀÚ Å¬·¡½º¸¦ Á¤ÀÇÇÑ ´ÙÀ½, À妽º¸¦ ÀÛ¼ºÇÒ ¶§ ÀûÀýÇÑ Å¬·¡½º¸¦ ¼±ÅÃÇÏ´Â °ÍÀ¸·Î, ½ÇÇà °¡´ÉÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º´Â ±âº»ÀûÀÎ Á¤·Ä(sorting)¼ø¼¸¦ °áÁ¤ÇÕ´Ï´Ù.
ÀÌÇÏ¿Í °°ÀÌ, µðÆúÆ®ÀÇ ¿¬»êÀÚ Å¬·¡½º¿Í´Â º°µµ·Î, ³»Àå ¿¬»êÀÚ Å¬·¡½º°¡ ¸î °³Àΰ¡ ÀÖ½À´Ï´Ù.
text_pattern_ops, varchar_pattern_ops, bpchar_pattern_ops ¹× name_pattern_ops¿¬»êÀÚ Å¬·¡½º´Â °¢°¢, text, varchar, char ¹× nameÇü»óÀÇ B-tree À妽º¸¦ Áö¿øÇÕ´Ï´Ù. µðÆúÆ®ÀÇ ¿¬»êÀÚ Å¬·¡½º¿ÍÀÇ Â÷ÀÌ´Â ·ÎÄÉÀÏ Æ¯À¯ÀÇ Á¶ÇÕ ±ÔÄ¢¿¡ µû¸£Áö ¾Ê°í , ¹®ÀÚ³¢¸®¸¦ ¾ö°ÝÇÏ°Ô ºñ±³ÇÏ´Â Á¡ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¿¬»êÀÚ Å¬·¡½º¸¦, Ç¥ÁØ"C"·ÎÄÉÀÏÀ» »ç¿ëÇÏÁö ¾Ê´Â ¼¹öÀÇ, ÆÐÅÏ ¸ÅÄ¡½Ä(LIKE³ª POSIX Á¤±Ô Ç¥Çö)À» Æ÷ÇÔÇÑ Äõ¸®ÀÇ »ç¿ë¿¡ ÀûÀýÇϵµ·Ï ¸¸µì´Ï´Ù. ¿¹¸¦ µé¸é, ÀÌÇÏ¿Í °°ÀÌvarcharÀÇ À妽º¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
CREATE INDEX test_index ON test_table (col varchar_pattern_ops);
¶ÇÇÑ, º¸ÅëÀÇ ºñ±³¸¦ Æ÷ÇÔÇÑ Äõ¸®·Î À妽º¸¦ »ç¿ëÇÏ°í ½Í´Ù¸é, µðÆúÆ®ÀÇ ¿¬»êÀÚ Å¬·¡½º¿¡¼ À妽º¸¦ ÀÛ¼ºÇØ¾ß ÇÏ´Â °Í¿¡ ÁÖÀÇÇØ Áֽʽÿä. ÀÌ·¯ÇÑ Äõ¸®¿¡¼´Â xxx _pattern_ops¿¬»êÀÚ Å¬·¡½º¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ´Ù¸¥ ¿¬»êÀÚ Å¬·¡½º¿¡¼ »ç¿ëÇÏ´Â ¿°ú °°Àº ¿¿¡ ´ëÇØ ´Ù¼öÀÇ À妽º¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. C·ÎÄÉÀÏÀ» »ç¿ëÇÏ´Â °æ¿ì´Â xxx _pattern_ops¿¬»êÀÚ Å¬·¡½º´Â ÇÊ¿ä ¾ø½À´Ï´Ù. C·ÎÄÉÀÏ¿¡¼ÀÇ ÆÐÅÏ ¸ÅÄ¡ Äõ¸®¿¡¼´Â µðÆúÆ® ¿¬»êÀÚ Å¬·¡½º¸¦ »ç¿ëÇÑ À妽º¸¦ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ÀÔ´Ï´Ù.
ÀÌÇÏÀÇ Äõ¸®´Â Á¤ÀÇ ³¡³ ¿¬»êÀÚ Å¬·¡½º¸¦ ¸ðµÎ µ¹·ÁÁÝ´Ï´Ù.
SELECT am.amname AS index_method,
opc.opcname AS opclass_name
FROM pg_am am, pg_opclass opc
WHERE opc.opcamid = am.oid
ORDER BY index_method, opclass_name;
À̰ÍÀº °¢ Ŭ·¡½º¿¡ Æ÷ÇÔµÈ ¸ðµç ¿¬»êÀÚµéÀº ³ªÅ¸³»±â À§ÇØ È®ÀåµÉ ¼ö ÀÖ½À´Ï´Ù.
SELECT am.amname AS index_method,
opc.opcname AS opclass_name,
opr.oid::regoperator AS opclass_operator
FROM pg_am am, pg_opclass opc, pg_amop amop, pg_operator opr
WHERE opc.opcamid = am.oid AND
amop.amopclaid = opc.oid AND
amop.amopopr = opr.oid
ORDER BY index_method, opclass_name, opclass_operator;