ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

SNSÍøÕ¾Êý¾Ý¿â¼¼Êõ·ÖÎö(Ò»)
2014-11-24 02:47:25 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºSNS ÍøÕ¾ Êý¾Ý¿â ¼¼Êõ ·ÖÎö

Éç½»Íø

ÏÖÔÚ£¬´«Í³µÄ»¥ÁªÍøÕýÔÚÂõÏòÒ»¸öÒ»¸öȫеÄʱ´ú ---- Éç½»·þÎñÍøÊ±´ú£¨ Social Networking Service £©£¬´Ó¡°ÈËÓë»úÆ÷¡±µÄʱ´úÂõÏò¡°ÈËÓëÈË¡±µÄʱ´ú¡£»¥ÁªÍøÉç½»·þÎñÍøÕ¾µÄ·¢Õ¹ÑéÖ¤ÁË¡°Áù¶È·Ö¸ôÀíÂÛ¡±£¨ Six Degrees of Separation £©£¬¼´¡°È˼ʹØÏµÂöÂç·½ÃæÄã±ØÈ»¿ÉÒÔͨ¹ý²»³¬³öÁùλÖмäÈ˼ä½ÓÓëÊÀÉÏÈÎÒâÏÈÉúŮʿÏàʶ¡±¡£¸öÌåµÄÉ罻Ȧ»á²»¶ÏµØÀ©´óºÍÖØµþ²¢ÔÚ×îÖÕÐγɴóµÄÉç½»ÍøÂç¡£ÎÞÂÛÊǹúÍâµÄ Facebook ¡¢ MySpace ¡¢ Twitter £¬»¹ÊǹúÄڵĿªÐÄÍø¡¢ÈËÈËÍøµÈһͷÔú½øÉç½»Íø£¬ËûÃÇÈ϶¨Éç½»Íø±ØÈ»ÏÆÆðÐÂÒ»ÂֵĻ¥ÁªÍø¸ïÃü¡£

Éç½»ÍøÆäÖÐÒ»¸öµÄÏÔÖøÌØµãÊÇÖ§³Ö¾Þ´óÓû§Êý£¬ÀýÈç Facebook Ö§³Ö³¬¹ý 3 ÒÚµÄÓû§£¬ Facebook Êý¾ÝÖÐÐÄÔËÐÐ×ų¬¹ýÍǫ̀µÄ·þÎñÆ÷£¬ÎªÕâЩ±é²¼È«ÇòµÄÓû§ÌṩÐÅϢͨѶ·þÎñ¡£ÁíÍ⣬ÈκÎÁ½¸öÉç½»ÍøÓû§¶¼¿ÉÄܽ»»¥£¬Ò²¾ÍÊDZØÐëÖ§³ÖÈκÎÁ½¸öÊý¾Ý¿âÓû§µÄÊý¾Ý¹ØÁª²Ù×÷¡£ÕâÖÖÇé¿öÏ£¬¶ÔÓÚ·þÎñ¶ËµÄÊý¾Ý¿â¹ÜÀíÌá³öÁ˼«´óµÄÌôÕ½¡£

¹ØÏµÊý¾Ý¿âÓë NoSQL Êý¾Ý¿â

¹ØÏµÊý¾Ý¿âʹÓÃÕß×ñѭһЩÊý¾Ý¿â·¶Ê½£¬ÕâЩ·¶Ê½ÊÇÊý¾Ý¿âÉè¼ÆÖеÄһϵÁÐÔ­ÀíºÍ¼¼Êõ£¬ÆäÄ¿µÄÊÇΪÁ˼õÉÙÊý¾Ý¿âÖÐÊý¾ÝÈßÓ࣬²¢Ôö½øÊý¾ÝµÄÒ»ÖÂÐÔ¡£½á¹¹»¯²éѯÓïÑÔ SQL £¬´óÁ¿Ê¹Óöà±íÁ¬½Ó²Ù×÷£¬ SQL µÄͨÓÃÐÔΪÊý¾Ý¿âʹÓÃÕß´øÀ´ºÜ¶à·½±ã¡£

Ëæ×ÅÔ½À´Ô½¶àÈç Web ·þÎñÖ®Àà³ÐÊÜ´ó¹æÄ£¹¤×÷¸ººÉµÄÓ¦Óõķ¢ÐУ¬Æä¶Ô¿ÉÉìËõÐÔµÄÐèÇó£¬Ê×ÏÈÓпÉÄÜ»á¸Ä±äµÃ·Ç³£Ñ¸ËÙ£¬Æä´Î»á±äµÃÎÞ±ÈÅÓ´ó¡£

¹ØÏµÊý¾Ý¿âµÄÈ·ÄÜÉìËõ×ÔÈ磬µ«Í¨³£Ö»Äܵ¥Ì¨·þÎñÆ÷½ÚµãÉϽøÐС£ ÀýÈç²ÉÓñí·ÖÇø¼¼Êõ£¬Ò»¸ö±í¸ñ¿ÉÒÔÓɶà¸öÎïÀíÎļþ×é³É£¬ËäÈ»±í¸ñµÄÈÝÁ¿Ôö´óÁË£¬µ«¸Ã±í¸ñÈÔȻֻÄÜÓÉÒ»Êý¾Ý¿âÒýÇæ¹ÜÀí¡£

Ò»µ©µ¥½ÚµãµÄÄÜÁ¦µÖ´ïÉÏÏÞ£¬Äã¾ÍµÃͨ¹ý¶à·þÎñÆ÷½ÚµãÀ´ÍùÍâÀ©Õ¹À´·Ö·¢¸ºÔØ¡£Õâʱºò¹ØÏµÊý¾Ý¿âµÄ¸´ÔÓÐԾͿªÊ¼Ó°ÏìÆäDZÔÚµÄÀ©Õ¹¹æÄ£ÁË¡£ RDBMS Ö§³Ö·ÖÇøÊÓͼ (Partition View) ¼¼Êõ£¬Ò²¾ÍÊÇÖ§³ÖÁª°îÊý¾Ý¿â (Federated Databases) ¸ÅÄͼ 1 ¡¿¡£Ò»¸ö·ÖÇøÊÓͼ¿ÉÒÔÓɶà¸ö·Ö²¼ÔÚ²»Í¬µÄÊý¾Ý¿â½Úµã·þÎñÆ÷Éϵıí¸ñ×éºÏ¶ø³É£¬Êý¾Ý¿âÓû§Ö»¿´µ½ÊǸÃÊÓͼ£¬²»¹ØÐĶà¸öÎïÀí±í¸ñ¡£Í¨¹ýÊý¾Ýˮƽ·Ö¸î¼¼Êõ£¬·ÖÇøÊÓͼ°Ñ¸ºÔØ·Öµ£µ½¶à¸öÊý¾Ý¿â½Úµã·þÎñÆ÷ÉÏ¡£À©ÈÝʱ£¬¸Ã·½·¨³ýÁËÐè¸Ä¶¯ÊÓͼ¶¨ÒåÍ⣬·ÖÇøÊÓͼ³ÉΪ·Ö²¼Ê½Êý¾Ý¿âϵͳµÄÖÐÐÄ£¬´æÔÚµ¥µã¹ÊÕÏÎÊÌâ¡£ÁíÍ⣬¿çÊý¾Ý¿â½ÚµãÖ®¼ä¶à±í¸ñ¼äÁ¬½Ó²Ù×÷µÄÖ§³Ö³öÏÖ¼«´óÀ§ÄÑ¡£


ͼ 1. IBM Áª°îÊý¾Ý¿âµÄÌåϵ½á¹¹

µ±ÊÔͼÀ©Õ¹Êý¾Ý¿âϵͳµ½³É°ÙÉÏǧ¸ö½Úµã£¬¶ø²»ÊǼ¸¸ö£¬½«µ¼Ö²»¿°¸´ÔÓÐÔÖ®ÖØ¸º£¬ÕâÒ»ÌØµãʹµÃ RDBMS ÔÚ´óÐÍ·Ö²¼Ê½ÏµÍ³Æ½Ì¨Êг¡ÀïµÄÉú´æÄÜÁ¦±»´ó·ùÏ÷¼õ¡£

ΪÁËÄÜÏò¿Í»§ÌṩµÄÒ»¸öÉìËõ×ÔÈçµÄ¿Õ¼äÈ¥´æ·ÅÓ¦ÓÃÊý¾Ý£¬¹©Ó¦ÉÌʵ¼ÊÉÏÖ»ÓÐÒ»ÖÖÕæÕýµÄÑ¡Ôñ¡£ËûÃDz»µÃ²»ÊµÏÖÒ»ÖÖÐÂÐ͵ĹØ×¢ÓÚ¿ÉÀ©ÐÔµÄÊý¾Ý¿âϵͳ£¬¶øÎþÉüµô¹ØÏµÊý¾Ý¿âËù´øÀ´µÄÆäËûºÃ´¦¡£ NoSQL ÊǷǹØÏµÐÍÊý¾Ý´æ´¢µÄ¹ãÒ嶨Òå¡£Ëü´òÆÆÁ˳¤¾ÃÒÔÀ´¹ØÏµÐÍÊý¾Ý¿âÓë ACID ÀíÂÛ´óһͳµÄ¾ÖÃæ¡£ NoSQL Êý¾Ý´æ´¢²»ÐèÒª¹Ì¶¨µÄ±í½á¹¹£¬Í¨³£Ò²²»´æÔÚÁ¬½Ó²Ù×÷¡£ÔÚ³¬´óÐÍÊý¾Ý´æÈ¡ÉϾ߱¸¹ØÏµÐÍÊý¾Ý¿âÎÞ·¨±ÈÄâµÄÐÔÄÜÓÅÊÆ¡£¸ÃÊõÓïÔÚ 2009 Äê³õµÃµ½Á˹㷺ÈÏͬ¡£ÆäÖÐ key-value Êý¾ÝÄ£ÐÍÊǽâ¾ö´óÐÍÊý¾Ý¿âϵͳÀ©³äÎÊÌâµÄÒ»ÖÖ¿ÉÐеĽâ¾ö·½°¸¡£

Berkeley DB Key-ValueÊý¾ÝÄ£ÐÍ

Berkeley DB ÊÇÒ»ÖÖÖ§³Ö key-value Êý¾ÝÄ£Ð͵ÄǶÈëʽÊý¾Ý¿â´æ´¢ÒýÇæ¡£²»Ö§³Ö Client/Server ÍøÂç·ÃÎÊ·½Ê½£¬³ÌÐòͨ¹ý½ø³ÌÄÚµÄ API ·ÃÎÊÊý¾Ý¿â¡£²»Ö§³Ö SQL »òÕ߯äËûµÄÊý¾Ý¿â²éѯÓïÑÔ£¬²»Ö§³Ö±í½á¹¹ºÍÊý¾ÝÁС£·ÃÎÊÊý¾Ý¿âµÄ³ÌÐò×ÔÖ÷¾ö¶¨Êý¾ÝÈçºÎ´¢´æÔڼǼÀһÌõ¼Ç¼ÓÉÒ»¸ö³ÆÎª¼ü key µÄÊý¾Ý¿éºÍÒ»¸ö³ÆÎªÖµ value µÄÊý¾Ý¿é×é³É¡£ Berkeley DB ²»¶Ô¼Ç¼ÀïµÄÊý¾Ý½øÐÐÈκΰü×°¡£Ó¦ÓóÌÐò¿Éͨ¹ýÒ»»Øµ÷º¯ÊýÀ´¶¨Ò岻ͬ¼üÖ®¼äµÄ´óС¹ØÏµ¡£¼Ç¼ºÍËüµÄ¼ü¶¼¿ÉÒÔ´ïµ½ 4G ×ֽڵij¤¶È¡£¾¡¹Ü¼Ü¹¹ºÜ¼òµ¥£¬ Berkeley DB È´Ö§³ÖºÜ¶à¸ß¼¶µÄÊý¾Ý¿âÌØÐÔ£¬±ÈÈç ACID Êý¾Ý¿âÊÂÎñ´¦Àí£¬ ϸÁ£¶ÈËø£¬ XA ½Ó¿Ú£¬Èȱ¸·ÝÒÔ¼°Í¬²½¸´ÖÆ¡£ Berkley DB Ϊ²»Í¬Óû§Ìṩ¶àÖÖ¹¦Äܼ¯£¨ Feature Set £© : Ö§³Öµ¥¸öдÏ̵߳ÄÊý¾Ý´æ´¢£¨ Data Store £©£»Ö§³Ö¶à²¢·¢Ð´Ï̵߳IJ¢·¢Êý¾Ý´æ´¢£¨ Concurrent Data Store £© ; Ö§³Ö ACID ºÍÔÖÄѻָ´µÄÊÂÎñÊý¾Ý´æ´¢£¨ Transactional Data Store £©£»ºÍͨ¹ý¸´ÖÆÖ§³ÖÈÝ´íµÄ¸ß¿É¿¿Êý¾Ý´æ´¢£¨ High Availability £©¡£

ʵ¼ÊÉÏ£¬Ò»¸ö¹ØÏµÊý¾Ý¿âϵͳÓÉÁ½¸ö¶ÀÁ¢µÄ²¿·Ö×é³É£¬Ò»ÊÇ´æ´¢ÒýÇæ£¬¶þÊǹØÏµÒýÇæ¡£´æ´¢ÒýÇæ¸ºÔð¼Ç¼´æ´¢£¬Ë÷ÒýºÍÊÂÎñ´¦Àí¡£¹ØÏµÒýÇæ»ùÓÚ´æ´¢ÒýÇæÌṩµÄ·þÎñ£¬¸ù¾Ý±í¸ñ¡¢ÊÓͼµÄÊý¾Ý½á¹¹ (Schema) ºÍÒѽ¨Á¢µÄË÷ÒýµÈÐÅÏ¢£¬ ¸ºÔð·ÖÎö SQL ²éѯ£¬Öƶ¨²éѯִÐмƻ®¡£ Berkeley DB ÊÇÒ»ÖÖ´æ´¢ÒýÇæ¡£ÀýÈç MySQL Êý¾Ý¿â¿É²ÉÓà MyISAM ¡¢ InnoDB ¡¢ Berkeley DB µÈ´æ´¢ÒýÇæ¡¾Í¼ 2 ¡¿¡£


ͼ 2 £º MySQL ʹÓõĶàÖÖ´æ´¢ÒýÇæ

Berkeley DB Ö§³ÖƽºâÊ÷£¨ BTree £©¡¢¹þÏ££¨ Hash £©¡¢¶ÓÁУ¨ Queue £©ºÍ¼Ç¼£¨ Record £©µÈÊý¾Ý¼¯´æ´¢¡¢Ë÷Òý·½Ê½¡£ Berkeley DB Ö§³Ö¸ù¾Ý key-value ÖÐµÄ key ´´½¨¼¯ÈºË÷Òý£¨ Clustered Index £©¡£ÕâÑù¼Ç¼¼¯µÄÎïÀí´ÎÐò¾Í¸ù¾Ý key µÄ´óСÀ´ÅÅÁС£Èç¹ûÒª²éѯ½á¹û¼Ç¼¼¯µÄ¼üֵΪ¸ø¶¨µÄÒ»¸ö·¶Î§£¬¸ÃÌØÐÔ¶ÔÓÚÖ§³ÖÕâÖÖÀàÐ͵ĿìËÙ²éѯÆðÁ˺ܴó×÷ÓᣠBerkeley DB µÄÒ»¸ö key-value ¼Ç¼¼¯³ÆÎªÒ»¸öÊý¾Ý¿â£¬Ò»¸öÊý¾Ý¿â´æ´¢ÔÚÒ»µ¥¶ÀÎļþÖС£ Berkeley DB ͨ¹ý´´½¨¸¨ÖúÊý¾Ý¿â£¨ Secondary Database £©ÔÊÐí¶Ô¼Ç¼¼¯½¨Á¢·Ç¼¯ÈºË÷Òý£¨ Non-Clustered Index £©¡£·Ç¼¯ÈºË÷ÒýÊÊÓÃÓÚ½á¹ûΪһÌõ¼Ç¼µÄ²éѯ£¬¸Ã¼Ç¼µÄ¼üֵΪ¸ø¶¨µÄÒ»¸öÖµ¡£ÀýÈçÉç½»ÍøÓû§Êý¾Ý¼¯£º

User

Èç¹ûÒÔ UID ×÷ΪÖ÷Êý¾Ý¿âµÄ¼ü£¬ÆäËû×Ö¶Î×÷ΪÖ÷Êý¾Ý¿âµÄÖµ¡£¿ÉÔÙ´´½¨Ò»¸¨ÖúÊý¾Ý¿â£¬ÒÔ E-mail ×÷Ϊ¸¨ÖúÊý¾Ý¿âµÄ¼ü£¬¸¨ÖúÊý¾Ý¿âµÄֵΪ E-mail Ëù¶ÔÓ¦µÄ UID £¬Ò²¾ÍÊÇÖ¸ÏòÖ÷Êý¾Ý¿â¼Ç¼µÄÖ¸Õë¡£

ÈôÔÚÒ»¸ö key-value Êý¾Ý¿â²éѯ£¬Ò»°ã¿É¸ù¾Ý²éѯÌõ¼þ´´½¨³ÉÒ»¼üÖµ£¬ÒýÇæ·µ»ØÒ»Óα꣨ Cursor £©£¬¸ÃÓαêÖ¸ÏòµÈÓÚ»ò´óÓڸüüÖµµÄ½á¹ûÊý¾Ý¼¯¡£

²»ÄÑ¿´³ö Berkeley DB ʹÓõÄË÷Òý¼¼ÊõÓë SQL Server, Oracle µÈ¸ß¶ËÊý¾Ý¿âϵͳÊÇÒ»ÑùµÄ¡£

ÆäÖÐÔÚ RDBMS Öо­³£Ê¹Óõıí¸ñÁ¬½Ó²Ù×÷£¬ÔÚ Berkeley DB Öв»ÔÙÖ§³Ö£¬ÐèÒªÓ¦ÓóÌÐòȥʵÏÖÁ½¸öÊý¾Ý¼¯µÄÁ¬½Ó²Ù×÷¡£ÕâÊÇ key-value Êý¾ÝÄ£ÐÍÓë¹ØÏµÊý¾ÝÄ£Ð͵äÐ͵ÄÇø±ð¡£

»ùÓÚ key-value Êý¾ÝÄ£ÐÍ£¬¿É°ÑÒ»¸ö value Êý¾Ý¿éÀ©³ä³É¶à¸öÁУ¬À´Ö§³ÖÁÐÊý¾ÝÄ£ÐÍ¡£

Berkeley DB ³ýÁË×÷Ϊ MySQL µÄ´æ´¢ÒýÇæÖ®Í⣬»¹Ó¦ÓÃÔÚ OpenLDAP ¡¢ MemCache µÈÖªÃûÈí¼þ¡£

Óë Berkeley DB ÀàËÆµÄÊý¾Ý¿âÒýÇæ»¹ÓÐ Tokyo Cabinet/ Tyrant µÈ¡£

Éç½»ÍøÊý¾Ý¿âϵͳ Cassandra DB

ÒÔ Facebook Óû§Êý¾Ý¼¯ÎªÀý×Ó£¬²»´ó¿ÉÄÜ°Ñ 3 ÒÚÌõÕâ¾Þ´óµÄÊý¾Ý¼¯´æ·ÅÔÚͬһ±í¸ñÖС¢Í¬Ò»¸öÎļþ»òÓÉͬһ̨¼ÆËã»ú´¦Àí£¬ÕâÒªÇóϵͳÄÜÖ§³ÖÊý¾Ý·ÖÇø£¬°ÑÊý¾Ý¼¯·Ö¸îÔÚ¶ą̀½Úµã¼ÆËã»úÖУ¬Ã¿Ì¨¼ÆËã»ú·Öµ£Ò»²¿·Ö¸ºÔØ£¬µ±Óû§Ôö¼Óµ½Ò»¶¨³Ì¶Èʱ£¬ÏµÍ³ÄÜÔÊÐí¼ÓÈëÐÂµÄ½Úµã¼ÆËã»ú£¬

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 ÏÂÒ»Ò³ βҳ 1/3/3
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºsql server2005Àïµ¼ÈëbakÎļþ ÏÂһƪ£ºSQLµãµÎ18¨DSqlServerÖеÄmerge²..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ: