hack ¤Î¤¿¤á¤Î¥Í¥¿Ä¢, etc,,,

Index Scan ¤Ë¤è¤ë sort ¤Î¹â®²½

°Ê²¼¤Îµ­½Ò¤Ë¤è¤ë¤È ORDER BY ¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ btree ¤Ç INDEX ¤òºî¤Ã¤Æ¤ª¤¯¤È¹â®²½½ÐÍè¤ë¤È¤Î¤³¤È¡£ ¤È¤³¤í¤¬¡¢EXPLAIN ¤Ç¤¤¤¯¤éÄ´¤Ù¤Æ¤â Seq Scan ¸å¤Ë Sort ¤µ¤ì¤ë¤Ð¤«¤ê¤Ç Index Scan ¤·¤Æ¤¯¤ì¤Ê¤¤¡£
°Ê²¼¤Î¿Í¤ÎÊó¹ð¤Ë¤è¤ë¤È¥Ç¡¼¥¿·ï¿ô¤Ë¤è¤êïçÃͤ¬Æ¯¤¯¤é¤·¤¯¡¢¤¢¤Þ¤êÂ礭¤Ê¥Ç¡¼¥¿¥»¥Ã¥È¤À¤È¶¯À©Åª¤Ë Seq Scan ¤Ç¥×¥é¥Ë¥ó¥°¤µ¤ì¤Æ¤·¤Þ¤¦¤é¤·¤¤¡£ ¤É¤¦¤Ë¤«¤·¤Æ¡¢Index Scan ¤ò¶¯À©½ÐÍè¤ó¤â¤Î¤«¤ÈÄ´¤Ù¤Æ¤¤¤¿¤é¡¢°Ê²¼¤Î¥Õ¥©¡¼¥é¥à¤ËÅú¤¨¤òȯ¸«¡£ °Ê²¼¤Î¤è¤¦¤ËÀßÄꤷ¤Æ¤ß¤í¤È¡£
set enable_seqscan = false;
¤¿¤À¤· Index Scan ¤Ï Seq Scan ¤ËÈæ¤Ù¤Æ¥¯¥½ÃÙ¤¤¤Î¤Ç»ß¤á¤È¤±¤È¤Î¤³¤È¡£

¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤¿·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ꡣ

psql

·ë²Ì¤À¤±´Ê·é¤Ë¤Þ¤È¤á¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
¾ò·ï¥Ç¡¼¥¿·ï¿ô½êÍ×»þ´Ö
sort¤Ê¤·Á´·ï7144492559.071 ms
LIMIT 61470614701081.756 ms
LIMIT 614716147123536.696 ms
enable_seqscan=true71444923418.107 ms
enable_seqscan=false7144499585.890 ms
³Î¤«¤Ë¡¢¥Ç¡¼¥¿¿ô 10 ÇܤËÁý¤¨¤Æ¤â Seq Scan + Sort ¤Ç¸íº¹¤ÎÈϰϤǤ·¤«Â®ÅÙ¤¬ÊѤï¤é¤Ê¤¤¤¬¡¢Index Scan ¤À¤È¥Ç¡¼¥¿¿ô¤Ë¤Û¤ÜÈæÎ㤷¤ÆÃÙ¤¯¤Ê¤Ã¤Æ¤ë¤È¤¤¤¦Ìܤòµ¿¤¤¤½¤¦¤Ê·ë²Ì¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£Index Scan ¤Ï Seq Scan ¤Î³µ¤Í 10 ÇÜÃÙ¤¤¤È¤¤¤¦·ë²Ì¤Î¤è¤¦¤À¡£¤È¤Ï¸À¤¨¡¢¾åµ­¤Î¾ò·ï¤ÇÁ´·ï¥½¡¼¥È¤¹¤ë¾ì¹ç¡¢°ÍÁ³¤È¤·¤Æ Index Scan ¤Î¤¬ 2 ÇܤÁ¤ç¤¤Â®¤¤¤ï¤±¤Ç¡¢PostgreSQL ¤Î plannner ¤ÎïçÃͤθ«ÀѤê¤Ï¡¢ºÇŬ²½¤¬¾¯¡¹´Å¤¤¤È¸À¤¨¤ë¡£¤¤¤Ã¤½¤Î»ö FFTW ¤ß¤¿¤¯¼Â¬(measure)¥â¡¼¥É¤È¤«¤¢¤Ã¤Æ¤âÎɤ¤¤ó¤¸¤ã¤Ê¤¤¤Î¤«¡©¤È»×¤¦¡£
²¿¤«¼ê¤Ï¤¢¤ë¤ó¤¸¤ã¤Ê¤¤¤Î¤«¤È»×¤¤¡¢¾¯¤·Ä´¤Ù¤Æ¤ß¤¿¤È¤³¤í¡¢¥Þ¥Ë¥å¥¢¥ë¤Î°Ê²¼¤ÎÉôʬ¤Ë¥Á¥å¡¼¥Ë¥ó¥°½ÐÍ褽¤¦¤ÊÊ·°Ïµ¤¤Î¤³¤È¤Ï½ñ¤¤¤Æ¤Ï¤¢¤Ã¤¿¡£ ¤·¤«¤·¶ñÂÎŪ¤Ë¤É¤³¤É¤¦¤¤¤¸¤ì¤ÐÎɤ¤¤Î¤«¤¬¸«¤Ä¤«¤é¤Ê¤¤¤Î¤Ç¡¢¤Á¤ç¤Ã¤È¥Ï¡¼¥É¥ë¤¬¹â¤½¤¦¤Ç¤¢¤ë¡£

´ØÏ¢

¥¿¥°

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

WikiÆ⸡º÷

¥Õ¥ê¡¼¥¨¥ê¥¢

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹