Ë÷ÒýµÄ¿ÉÀ©Õ¹ÐԺͲ¢·¢ÐÔ̽ÌÖ Indexing for High Throughput and Sca
Êý¾ÝÀàÐÍ¡¢Êý¾Ý²Ù×÷ºÍÓ¦Óû·¾³µÈÖî¶àÒòËØ²»¶ÏÇý¶¯×ÅÐÂÐÍË÷ÒýµÄÉè¼Æ¡£Êý¾Ý¿âϵͳÐèÒª¶ÔÒÆ¶¯¶ÔÏó¡¢Ê±¼äÐòÁкÍ×Ö·û´®µÈÐÂÐÍÓ¦ÓÃÌṩ֧³Ö£¬ÕâÒ²µ¼ÖÂÐÂÐÍË÷ÒýµÄ·¢Ã÷¡£µ«ÊÇ£¬µ±Ç°Ö÷Á÷µÄÉÌÒµÊý¾Ý¹ÜÀíϵͳÖ÷ÒªÖ§³ÖB+Ê÷(B+-tree)¡¢RÊ÷(R-tree)¡¢¹þÏ£±í(hash table)ºÍλͼ(bitmap)µÄ±äÖÖ¡£ÕâÖ÷ÒªÊÇÒòΪһµ©Ò»ÖÖÐÂË÷Òý±»Òý½ø£¬Ðí¶àÆäËû×é¼þ£¬ÖîÈç²éѯ´¦ÀíÆ÷£¬²¢·¢¿ØÖƺͻº´æ¹ÜÀíÆ÷²»µÃ²»±»Ð޸ġª¡ª¶Ô´ó¶àÊýϵͳÀ´Ëµ£¬ÕâÊÇÒ»¸ö´ú¼Û¸ßÇÒµ£·çÏյľö¶¨¡£
Ë÷ÒýÔÚÉè¼Æ·½ÃæÓ¦¸Ã¼ò½àºÍ¾«È·£¬ÔÚÐÔÄÜ·½ÃæÓ¦¸Ã¸ßЧ¡¢½¡×³ÇÒ¿ÉÀ©Õ¹¡£²»ÐÒµØÊÇ£¬Ðí¶àÉè¼Æ¾³£¹Ë´Ëʧ±Ë£¬ÀýÈçÒÆ¶¯¶ÔÏóÊý¾Ý¿âÓнϸߵĸüкͲéѯ¸ºÔØ£¬Ë÷ÒýÉè¼ÆÐèÒªÖ§³Ö²¢·¢²Ù×÷(concurrent operations)£»ÁíÍ⣬Ë÷ÒýÐèÒª´æ´¢ÔÚ´ÅÅÌÉÏÔòÊÇΪÁËÔÚÿ̨»úÆ÷ÉÏÖ§³ÖÐí¶àÓ¦ÓúͲ¢·¢Óû§¡£ÈκÎÉè¼Æ¸´ÔÓµÄË÷Òý¶¼²»Ì«¿ÉÄܺܺõØÀ©Õ¹£¬ÒòΪËüÃÇά»¤´ú¼Û°º¹ó£¬¶øÇÒÐèÒªÅäÖúܶàϵͳ²ÎÊý£¬Èç²éѯÀàÐÍ£¬²éѯ·Ö²¼£¬Êý¾Ý·Ö²¼£¬Ò³´óС£¬µÈµÈ¡£
Ë÷ÒýµÄ»ù±¾Ë¼ÏëÊǽ«Êý¾Ý»®·Ö³É×飬ÒÔ±ãÈÃÿ¸ö×é¿ÉÒÔ±»´æ´¢µ½Ò»¸öÎïÀíÒ³£¨µäÐ͵ØÊÇ4K×Ö½Ú£¬µ«ÊÇÏÖÔÚ´ó¶àÊýϵͳÊÇ8K×Ö½Ú£©¡£ÔÚ»®·Ö¹ý³ÌÖУ¬¿ÉÒÔʹÓöà²ã½á¹¹£¬Ã¿Ò»²ã¶¼ÊÇ»®·Ö³É¼¸¸öÇø¼ä·¶Î§£¬Ô½Ð¡²ãµÄÇø¼ä»®·ÖԽϸ¡£ÔÚ±éÀúµÄ¹ý³ÌÖУ¬Ð§¹ûÊÇÓëÔÚµØÍ¼ÉÏËÑË÷½ÖµÀÊÇÒ»ÑùµÄ£º´Ó´óµÄ×ø±ê·½¸ñµ½¸üСµÄ×ø±ê·½¸ñ£¬ÔÙµ½Ö¸¶¨µÄÒ³¡£ÕâÔÊÐíÎÒÃǸßЧ¶¨Î»²éѯµÄÊý¾ÝÏî¡£B+Ê÷ºÍRÊ÷¾ÍºÜºÃµØ×¥×¡Á˸ñ¾ÖÊ£¬ÇÒÁ½ÀàË÷Òý¶¼ÊǶ¯Ì¬ºÍ¸ßЧµÄ¡£¶ÔÓÚB+Ê÷£¬¾¹ý½ÏºÃ²âÊÔµÄBÁ´Ê÷(B-link)²¢·¢¿ØÖƱ»ÓÃÀ´Ö§³Ö²¢·¢·ÃÎʺ͸ßЧ×Ü´¦ÀíÄÜÁ¦¡£Í¬ÑùµØ£¬RÁ´Ê÷(R-link)Ò²±»ÓÃÓÚRÊ÷¡£
Ë÷Òý±¾ÉíÊÇÓдú¼ÛµÄ¡£Ë÷Òý±ØÐëΪÿ´ÎÐ޸Ķø¸üС£Òò´Ë£¬µ±Ë÷Òý´Ù½øÁË¿ìËÙ¼ìË÷£¬Ë÷Òý¿ÉÄܵ¼ÖÂÔÚ¸üÐÂÉϲ»±ØÒªµÄÑÓ³Ù£¬ÓÈÆäÊǵ±Ë÷Òý½¨Á¢ÔÚÿ¸ö±í»òÊý¾Ý¼¯ÉÏÃæ¡£ÔÚ¸üÐÂÆÚ¼äµÄËø²Ù×÷½«ÒýÆð¶Á²Ù×÷µÄµÈ´ý£¬´Ó¶ø½µµÍÁËËÑË÷ЧÂÊ¡£
Ë÷ÒýÉè¼Æ¿ÉÄÜ´øÀ´µÄһЩÎÊÌ⣺
1£©Ô¤´¦Àí£ºÒѾÓÐÈ˽¨Òé¶ÔÊý¾Ý½øÐÐÔ¤´¦Àí£¬ÖîÈç²åÈë²Ù×÷£¬ÓÅ»¯Ë÷Òý¡£Ô¤´¦Àí¿ÉÒÔ¸ÄÉÆ¼ìË÷ЧÂÊ£¬µ«Ò²ÒýÆð´ó²¿·ÖË÷Òý±»Ëø×¡£¬´øÀ´²¢·¢¼ìË÷µÄ¸´ÔÓÐÔ¡£
2£©¶à¸öË÷Òý½á¹¹µÄʹÓ㺼ÈÈ»¶à¸öË÷Òý±»ÓÃÀ´Ë÷ÒýÊý¾Ý¼¯µÄ²»Í¬ÊôÐÔ£¬¶ÔÈÎÒ»¸öÊý¾ÝÏîµÄ¸üÐÂÔÚ¶à¸öË÷ÒýÉϱØÐëÊÇͬ²½·¢ÉúµÄ¡£ÔÚijЩÇé¿öÏ£¬Ë÷Òý£¨¸üеÄÒ»Ìõ·¾¶£©±ØÐëÊÇͬʱ±»±éÀúºÍËø×¡¡£
3£©¶à¸ö½á¹¹µÄʹÓ㺶à¸ö½á¹¹µÄʹÓý«Ê¹µÃ²¢·¢¿ØÖƸ´ÔÓ»¯¡£ÀýÈ磬ÓÐÈËÌá³ö£¬ÔÚÄÚ´æÖдæ·Å¡°Èȵ㡱Êý¾ÝÏ¶ÔÓÚ¡°ÀäÃÅ¡±Êý¾ÝÏîÔòʹÓûùÓÚ´ÅÅ̵ÄË÷Òý¡£Êý¾Ýͬ²½µ¼Ö¿ªÏú£¬ÇÒ²»¿ÉÄÜÓÐЧµØ¾ö¶¨Òƶ¯Êý¾ÝÏîÈçºÎ´ÓÒ»¸öË÷Òýתµ½ÁíÍâÒ»¸öË÷Òý¡£
4£©´ú¼Û½Ï¸ßµÄ»®·Öº¯ÊýµÄʹÓãºÓÐЩº¯ÊýÔÚÃèÊöÊý¾ÝÉÏÄܹ»ÌṩºÜºÃµÄ¾«¶È¡£Ë÷Òý½á¹¹Ó¦¸ÃÊ**ýÂË¡ªÏ¸»¯Ëã·¨(filter-and-refine)µÄÒ»²¿·Ö»òÕß·½±ãÆäËû²Ù×÷µÄÖ´ÐУ¬ÖîÈçjoin¡£Òò´Ë£¬¸Ã²¿·ÖµÄÖ÷ҪĿµÄÊǾ¡¿ÉÄܸü¿ìµØ¹ýÂËÄÇЩ¼ÙÑôÐԵIJ¿·Ö¡£´ú¼Û¸ßµÄ»®·Öº¯ÊýËäÈ»Äܹ»¼õÉÙ¹ýÂ˵Ĵú¼Û£¬µ«ÕâÑùµÄº¯Êý¸üÊÊÓÃÓÚ¾²Ì¬Êý¾Ý¼¯£¬ÄÑÒԽϺõØÔÚ¶¯Ì¬»·¾³ÏÂÀ©Õ¹£¬ÒòΪÕâÑùµÄ»·¾³Ï£¬¸üкÍеIJåÈë²Ù×÷ÊǷdz£ÆÕ±éµÄ¡£
5£©ÄÚ´æË÷Òý£º´ó¶àÊýÈË¿ÉÄÜÈÏΪË÷Òý×㹻С¿ÉÒԷŽøÄÚ´æ¡£Èç¹ûϵͳ½öÖ§³ÖÉÙÊý¼¸¸öÓ¦ÓúͲ¢·¢Óû§£¬ÕâÖÖ¹ÛµãÊÇÕýÈ·¡£ÔÚ´ó¶àÊýϵͳÖУ¬»º´æ±»»®·ÖÒÔ±ãÓÃÓÚ²»Í¬µÄÄ¿µÄ£¬ÏµÍ³ºÍÆäËûµÄ´úÂëÏûºÄ´óÁ¿µÄÄÚ´æ¡£´ËÍ⣬¼ÈÈ»ÄÚ´æÊÇÒ×±äµÄ£¬ÆäËûµÄ»úÖÆÒ²ÊDZØÐëµÄÒÔ±ãÈ·±£¸üеÄÒ»ÖÂÐÔ¡£¶ÔÓÚ»ùÓÚÄÚ´æµÄË÷Òý£¬L2¸ßËÙ»º´æÓÅ»¯ÊÇÔÚÉè¼ÆÖÐÖ÷Òª¿¼ÂǵÄÒòËØÖ®Ò»¡£
6£©Ò³´óС£º¸üСµÄÒ³´óСÒâζ×Åÿҳ¸üÉٵļǼ£¬ÇÒ¿ÉÒÔÌṩ¸ü¼ÑµÄÓÅ»¯Ð§¹û¡£È»¶ø£¬Ò³´óСͨ³£ÊÇÓÉϵͳ¾ö¶¨£¬¶ø²»ÊÇÓÉË÷ÒýÉè¼ÆÕßËù¾ö¶¨¡£´ËÍ⣬¸üСµÄÒ³´óСµ¼Ö¸ü¸ßµÄË÷Òý²ã´ÎºÍÒýÆð¸ü¶àµÄËæ»ú¶ÁµÄI/O²Ù×÷¡£
ÉÏÊöÎÊÌâÖ÷ÒªÊÇÓÉÒÔÏÂÒòËØÒýÆð£ºÈ±·¦²¢·¢ÐԵĿ¼ÂÇ£¬»ìÏýË÷Òý½á¹¹µÄÓÃ;£¬ºÍȱ·¦¶ÔÓ²¼þºÍ²Ù×÷ϵͳ»·¾³µÄÀí½â¡£ºÁÎÞÒÉÎÊ£¬Ë÷Òý»úÖÆÈÔÈ»ÊÇ¿ìËÙÓÐЧµØ¼õÉÙËÑË÷´ú¼ÛµÄ×î¼Ñ·½Ê½¡£½¨Á¢ÐÂË÷Òý×ÜÊDZȷ¢Ã÷вéѯ´¦Àí²ßÂÔÀ´µÃÈÝÒס£ÕâÒ²½âÊÍÁËË÷Òý¼¼ÊõµÄ¿ìËÙ·¢Õ¹¡£ÊÂʵÉÏ£¬ÒòΪË÷ÒýÓ°ÏìÁË»º´æ¹ÜÀí²ßÂÔ£¬²éѯÓÅ»¯ºÍ´¦Àí²ßÂÔ£¬²¢·¢¿ØÖƺͻָ´£¬Ã»ÓÐÄÄÒ»¸öͨÓÃÊý¾Ý·þÎñÆ÷Äܹ»Ö§³ÖºÍά»¤ºÜ¶àÖÖË÷Òý¡£
×ÛÉÏËùÊö£¬Ë÷ÒýÈç¹ûûÓкÏÀíµØ±»Éè¼Æ£¬½«±ä³ÉÒ»ÖÖ¸ºµ££¬¶ø²»ÊÇÒ»ÖÖ¼ÓËÙ»úÖÆ¡£Òò´Ë£¬Ö±µ½½ñÌ죬B+Ê÷£¬RÊ÷ºÍ¹þÏ£±íÈÔÈ»ÊÇÖ÷ÒªµÄË÷Òý½á¹¹¡£
http://ooibc.blog.163.com/blog/static/103968235200911100195944/