±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁ˹ØÏµÐÍÊý¾Ý¿âºÍ·Ç¹ØÏµÐÍÊý¾Ý¿âµÄÓÅȱµã£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
¹ØÏµÐÍÊý¾Ý¿â
¹ØÏµ µÄ¸öÈËÀí½â£º¹ØÏµ¾ÍÊDZíÄÚÊý¾ÝÖ®¼äµÄ¡¢±íÖ®¼äµÄ¹ØÏµ¡£±íÄÚÊý¾ÝÊÇÑϸñµÄ¶ÔÓ¦¹ØÏµ£¬×Ö¶Îȱһ²»¿É£¬ÖµÈ±Ò»²»¿É£¬Ò²¾ÍÊÇÒ»ÖµÄÊý¾Ý½á¹¹£¬ÕâÒ²¾ÍÊÇ
django ÐÂÔö×Ö¶Îʱ£¬ÐèҪɾµôÊý¾Ý£¬ÖØÐ migrate¡£±íÖ®¼äµÄ¹ØÏµÈýÖÖ£ºÒ»¶ÔÒ»¡¢Ò»¶Ô¶à¡¢¶à¶Ô¶à¡£¹ØÏµÄ£ÐÍÖ¸µÄ¾ÍÊǶþά±í¸ñÄ£ÐÍ£»
¹ØÏµÐÍÊý¾Ý¿âÒÔÐкÍÁеÄÐÎʽ´æ´¢Êý¾Ý£¬ÐкÍÁеÄÐÎʽ±»³ÆÎª±í£¬±íÊÇÓÉÒ»×éÏà¹ØÊµÌå×é³ÉµÄ¼¯ºÏ¡£Ò»×é±í×é³ÉÁËÊý¾Ý¿â¡£
±íÖеÄÒ»ÐгÆÎª¹ØÏµµÄÒ»¸öÔª×飬ÓÃÀ´´æ´¢ÊÂÎïµÄÒ»¸öʵÀý£»
±íÖеÄÒ»ÁгÆÎª¹ØÏµµÄÒ»¸öÊôÐÔ£¬ÓÃÀ´ÃèÊöʵÌåµÄÄ³Ò»ÌØÕ÷¡£
±íÄÚ×ֶεÄ×é³ÉÒ»Ñù£¬¼´±ãij¸öÊý¾Ý²»ÐèҪij¸ö×ֶΣ¬ÏµÍ³Ò²»áÇ¿¼ÓÉÏÕâ¸ö×ֶμ°Ä¬ÈÏÖµ£¬ÕâÖֽṹ±ãÓÚ±íÓë±íÖ®¼ä½øÐвÙ×÷£¬µ«ËüÒ²ÊǹØÏµÊý¾Ý¿âÐÔÄÜÆ¿¾±µÄÒ»¸öÒòËØ¡£
1.¹ØÏµÐÍÊý¾Ý¿âÀíÂÛ - ACID
ACID£¬ÊÇÖ¸Êý¾Ý¿â¹ÜÀíϵͳ£¨DBMS£©ÔÚдÈë»ò¸üÐÂ×ÊÁϵĹý³ÌÖУ¬Îª±£Ö¤ÊÂÎñ£¨transaction£©ÊÇÕýÈ·¿É¿¿µÄ£¬Ëù±ØÐë¾ß±¸µÄËĸöÌØÐÔ£ºÔ×ÓÐÔ£¨atomicity£¬»ò³Æ²»¿É·Ö¸îÐÔ£©¡¢Ò»ÖÂÐÔ£¨consistency£©¡¢¸ôÀëÐÔ£¨isolation£¬ÓֳƶÀÁ¢ÐÔ£©¡¢³Ö¾ÃÐÔ£¨durability£©¡£
A ¨C Atomicity ¨C Ô×ÓÐÔ
Ò»¸öÊÂÎñ£¨transaction£©ÖеÄËùÓвÙ×÷£¬ÒªÃ´È«²¿Íê³É£¬ÒªÃ´È«²¿²»Íê³É£¬²»»á½áÊøÔÚÖмäij¸ö»·½Ú¡£ÊÂÎñÔÚÖ´Ðйý³ÌÖз¢Éú´íÎ󣬻ᱻ»Ø¹ö£¨Rollback£©µ½ÊÂÎñ¿ªÊ¼Ç°µÄ״̬£¬¾ÍÏñÕâ¸öÊÂÎñ´ÓÀ´Ã»Óб»Ö´ÐйýÒ»Ñù¡£
C ¨C Consistency ¨C Ò»ÖÂÐÔ
ÔÚÊÂÎñ¿ªÊ¼Ö®Ç°ºÍÊÂÎñ½áÊøÒÔºó£¬Êý¾Ý¿âµÄÍêÕûÐÔûÓб»ÆÆ»µ¡£Õâ±íʾдÈëµÄ×ÊÁϱØÐëÍêÈ«·ûºÏËùÓеÄÔ¤Éè¹æÔò£¬Õâ°üº¬×ÊÁϵľ«È·¶È¡¢´®ÁªÐÔÒÔ¼°ºóÐøÊý¾Ý¿â¿ÉÒÔ×Ô·¢ÐÔµØÍê³ÉÔ¤¶¨µÄ¹¤×÷¡£
I ¨C Isolation ¨C ¸ôÀëÐÔ
Êý¾Ý¿âÔÊÐí¶à¸ö²¢·¢ÊÂÎñͬʱ¶ÔÆäÊý¾Ý½øÐжÁдºÍÐ޸ĵÄÄÜÁ¦£¬¸ôÀëÐÔ¿ÉÒÔ·ÀÖ¹¶à¸öÊÂÎñ²¢·¢Ö´ÐÐʱÓÉÓÚ½»²æÖ´Ðжøµ¼ÖÂÊý¾ÝµÄ²»Ò»Ö¡£ÊÂÎñ¸ôÀë·ÖΪ²»Í¬¼¶±ð£¬°üÀ¨¶ÁδÌá½»£¨Read
uncommitted£©¡¢¶ÁÌá½»£¨read committed£©¡¢¿ÉÖØ¸´¶Á£¨repeatable read£©ºÍ´®Ðл¯£¨Serializable£©¡£
D ¨C Durability ¨C ³Ö¾ÃÐÔ
ÊÂÎñ´¦Àí½áÊøºó£¬¶ÔÊý¾ÝµÄÐÞ¸ÄÊÇÓÀ¾ÃµÄ£¬¼´±ãϵͳ¹ÊÕÏÒ²²»»á¶ªÊ§¡£
2.ÓÅȱµã
¹ØÏµÐÍÊý¾Ý¿âµÄÓÅÊÆ£º
ÈÝÒ×Àí½â£º¶þά±í½á¹¹ÊǷdz£Ìù½üÂß¼ÊÀ½çÒ»¸ö¸ÅÄ¹ØÏµÄ£ÐÍÏà¶ÔÍø×´¡¢²ã´ÎµÈÆäËûÄ£ÐÍÀ´Ëµ¸üÈÝÒ×Àí½â£»
±£³ÖÊý¾ÝµÄÒ»ÖÂÐÔ£¨ÊÂÎñ´¦Àí£©
ÓÉÓÚÒÔ±ê×¼»¯ÎªÇ°ÌᣬÊý¾Ý¸üеĿªÏúºÜС£¨ÏàͬµÄ×ֶλù±¾É϶¼Ö»ÓÐÒ»´¦£©
Ö§³ÖSQL£¬¿ÉÒÔ½øÐÐJoinµÈ¸´ÔÓ²éѯ£¨¼¸ÕűíÖ®¼ä£©
¹ØÏµÐÍÊý¾Ý¿âµÄ²»×㣺
²»Éó¤µÄ´¦Àí
´óÁ¿Êý¾ÝµÄдÈë´¦Àí
ΪÓÐÊý¾Ý¸üеıí×öË÷Òý»ò±í½á¹¹£¨schema£©±ä¸ü
×ֶβ»¹Ì¶¨Ê±Ó¦ÓÃ
¶Ô¼òµ¥²éѯÐèÒª¿ìËÙ·µ»Ø½á¹ûµÄ´¦Àí
·Ç¹ØÏµÊý¾Ý¿â
½á¹¹²»¹Ì¶¨£¬¼¯ºÏÄÚÊý¾Ý×ֶοÉÒÔ²»Ò»Ñù£¬×ÔÓɶȸߣ¬¿ÉÒÔ¼õÉÙһЩʱ¼äºÍ¿Õ¼äµÄ¿ªÏú¡£
ËÄ´óÀàÐÍ£º
¼üÖµ¶Ô´æ´¢£¨key-value£©£¬Îĵµ´æ´¢£¨document store£ºmongodb£©£¬»ùÓÚÁеÄÊý¾Ý¿â£¨column-oriented£©£¬»¹ÓоÍÊÇͼÐÎÊý¾Ý¿â£¨graph
database£©
Ö÷Á÷µÄ·Ç¹ØÏµÐÍÊý¾Ý¿âÓÐ NoSql¡¢MongoDB¡¢Cloudant¡¢
ÌØÕ÷£º
1¡¢Ê¹ÓüüÖµ¶Ô´æ´¢Êý¾Ý£»
2¡¢·Ö²¼Ê½£»
3¡¢Ò»°ã²»Ö§³ÖACIDÌØÐÔ£»
4¡¢·Ç¹ØÏµÐÍÊý¾Ý¿âÑϸñÉϲ»ÊÇÒ»ÖÖÊý¾Ý¿â£¬Ó¦¸ÃÊÇÒ»ÖÖÊý¾Ý½á¹¹»¯´æ´¢·½·¨µÄ¼¯ºÏ¡£
Óŵ㣺
1¡¢ÎÞÐè¾¹ýsql²ãµÄ½âÎö£¬¶ÁдÐÔÄܸܺߣ»
2¡¢»ùÓÚ¼üÖµ¶Ô£¬Êý¾ÝûÓÐñîºÏÐÔ£¬ÈÝÒ×À©Õ¹£»
3¡¢´æ´¢Êý¾ÝµÄ¸ñʽ£ºnosqlµÄ´æ´¢¸ñʽÊÇkey,valueÐÎʽ¡¢ÎĵµÐÎʽ¡¢Í¼Æ¬ÐÎʽµÈµÈ£¬ÎĵµÐÎʽ¡¢Í¼Æ¬ÐÎʽµÈµÈ£¬¶ø¹ØÏµÐÍÊý¾Ý¿âÔòÖ»Ö§³Ö»ù´¡ÀàÐÍ¡£
ȱµã£º
1¡¢²»ÌṩsqlÖ§³Ö£¬Ñ§Ï°ºÍʹÓóɱ¾½Ï¸ß£»
2¡¢ÎÞÊÂÎñ´¦Àí£¬¸½¼Ó¹¦ÄÜbiºÍ±¨±íµÈÖ§³ÖÒ²²»ºÃ£»
[¹ØÏµÓë·Ç¹ØÏµÐÍÊý¾Ý¿â]
NoSQL,Ö¸µÄÊǷǹØÏµÊý¾Ý¿â¡£ÓÉÉÏÃæµÄÐðÊö¿ÉÒÔ¿´µ½¹ØÏµÐÍÊý¾Ý¿âÖÐµÄ±í¶¼ÊǴ洢һϸñʽ»¯µÄÊý¾Ý½á¹¹£¬Ã¿¸öÔª×é×ֶεÄ×é³É¶¼ÊÇÒ»ÑùµÄ£¬¼´Ê¹²»ÊÇÿ¸öÔª×é¶¼ÐèÒªËùÓеÄ×ֶΣ¬µ«Êý¾Ý¿â»áΪÿ¸öÔª×é¶¼·ÖÅäËùÓеÄ×ֶΣ¬ÕâÑùµÄ½á¹¹¿ÉÒÔ±ãÓÚ±íÓë±íÖ®¼ä½øÐÐÁ¬½ÓµÈ²Ù×÷£¬µ«´ÓÁíÒ»¸ö½Ç¶ÈÀ´ËµËüÒ²ÊǹØÏµÊý¾Ý¿âÐÔÄÜÆ¿¾±µÄÒ»¸öÒòËØ¡£¶ø·Ç¹ØÏµÊý¾Ý¿âÒÔ¼üÖµ¶Ô´æ´¢£¬ËüµÄ½á¹¹²»¹Ì¶¨£¬Ã¿Ò»¸öÔª×é¿ÉÒÔÓв»Ò»ÑùµÄ×ֶΣ¬Ã¿¸öÔª×é¿ÉÒÔ¸ù¾ÝÐèÒªÔö¼Ó»ò¼õÉÙһЩ×Ô¼ºµÄ¼üÖµ¶Ô£¬ÕâÑù¾Í²»»á¾ÖÏÞÓڹ̶¨µÄ½á¹¹£¬¿ÉÒÔ¼õÉÙһЩʱ¼äºÍ¿Õ¼äµÄ¿ªÏú¡£
¹ØÏµÐÍÊý¾Ý¿âÒÔÐкÍÁеÄÐÎʽ´æ´¢Êý¾Ý£¬ÒÔ±ãÓÚÓû§Àí½â¡£ÕâһϵÁеÄÐкÍÁб»³ÆÎª±í£¬Ò»×é±í×é³ÉÁËÊý¾Ý¿â¡£Óû§Óòéѯ(Query)À´¼ìË÷Êý¾Ý¿âÖеÄÊý¾Ý¡£Ò»¸öQueryÊÇÒ»¸öÓÃÓÚÖ¸¶¨Êý¾Ý¿âÖÐÐкÍÁеÄSELECTÓï¾ä¡£¹ØÏµÐÍÊý¾Ý¿âͨ³£°üº¬ÏÂÁÐ×é¼þ£º ¿Í»§¶ËÓ¦ÓóÌÐò(Client) Êý¾Ý¿â·þÎñÆ÷(Server) Êý¾Ý¿â(Database) Structured Query Language(SQL)Client¶ËºÍServer¶ËµÄÇÅÁº£¬ClientÓÃSQLÀ´ÏóServer¶Ë·¢ËÍÇëÇó£¬Server·µ»ØClient¶ËÒªÇóµÄ½á¹û¡£ÏÖÔÚÁ÷ÐеĴóÐ͹ØÏµÐÍÊý¾Ý¿âÓÐIBM
DB2¡¢IBM UDB¡¢Oracle¡¢SQL Server¡¢SyBase¡¢InformixµÈ¡£
¹ØÏµÐÍÊý¾Ý¿â¹ÜÀíϵͳÖд¢´æÓë¹ÜÀíÊý¾ÝµÄ»ù±¾ÐÎʽÊǶþά±í¡£
¹ØÏµÐÍÊý¾Ý¿âÊÇÒ»×éÒѾ±»×é֯Ϊ±í½á¹¹µÄÐÅÏ¢µÄ¼¯ºÏ¡£ÕâЩÐÅÏ¢ÒÔ±íµÄÐÎʽ±»´æ´¢ÓÚ´ÅÅÌ¡¢´Å´øµÈÎïÀí½éÖÊÖС£Ã¿¸ö±í¿ÉÒÔÓжàÐУ¬¶øÃ¿ÐÐÓÖ±»²ð·Ö³É¶àÁС£
¹ØÏµÐÍÊý¾Ý¿âÒ»ÕûÌ×ÊýѧÀíÂÛ»ù´¡£¬ÀýÈç¹ØÏµ´úÊýºÍ¹ØÏµÔËËãÊǹØÏµÐÍÊý¾Ý¿âµÄÖ»ÒªÀíÂÛ»ù´¡¡£
ÈÕ³£Éú»îÖÐÎÒÃǶԱí½á¹¹·Ç³£ÊìϤ£¬ÀýÈçѧÉúµÄ³É¼¨±í£¬¿Î³Ì±íµÈ£¬ÕâЩ±í¸ñ¶¼ÊÇÒÔÐкÍÁеĶþά·½Ê½À´½«ÐÅÏ¢×éÖ¯ÔÚÒ»Æð¡£ÕâЩÐÅÏ¢¿ÉÒÔÒÔ¸÷ÖÖÐÎʽ´æÔÚ£¬ÀýÈç´òÓ¡ÔÚÖ½ÉÏ£¬ÏÔʾÔÚµçÄÔµÄÆÁÄ»ÉÏ£¬¼Ç¼ÔÚÈËÃǵÄÄÔº£À´æÔÚ·þÎñÆ÷µÄ´ÅÅÌÀïµÈµÈ¡£
ÏÖÔÚÐèÒªÒ»ÖÖ·½±ãµÄÊÖ¶ÎÀ´¹ÜÀíÕâЩÐÅÏ¢£¬×îºÃÊÇËæÊ±Äܲéѯ£¬ÐÂÔö£¬É¾³ýºÍ¸üеģ¬Õâ¾ÍÊÇÊý¾Ý
¹ØÏµ£º
¡¤¹ØÏµÊÇÂú×ãÒ»¶¨Ìõ¼þµÄ¶þά±í£¬±íÖеÄÒ»ÐгÆÎª¹ØÏµµÄÒ»¸öÔª×飬ÓÃÀ´´æ´¢ÊÂÎïµÄÒ»¸öʵÀý£»±íÖÐ
µÄÒ»ÁгÆÎª¹ØÏµµÄÒ»¸öÊôÐÔ£¬ÓÃÀ´ÃèÊöʵÌåµÄÄ³Ò»ÌØÕ÷¡£±íÊÇÓÉÒ»×éÏà¹ØÊµÌå×é³ÉµÄ¼¯ºÏ¡£ËùÒÔ±íºÍ
ʵÌ弯ÕâÁ½¸ö´Ê³£³£¿ÉÒÔ½»ÌæÊ¹Óá£
¡¤¹ØÏµÊÇÒ»¸öÐÐÓëÁн»²æµÄ¶þά±í£¬Ã¿Ò»ÁУ¨ÊôÐÔ£©µÄËùÓÐÊý¾Ý¶¼ÊÇͬһÖÖÊý¾ÝÀàÐÍ£¬Ã¿Ò»Áж¼ÓÐΨ
Ò»µÄÁÐÃû£¬ÁÐÔÚ±íÖеÄ˳ÐòÎ޹ؽôÒª£»±íÖеÄÈÎÒâÁ½ÐУ¨Ôª×飩²»ÄÜÏàͬ£¬ÐÐÔÚ±íÖеÄ˳ÐòÒ²Î޹ؽô
Òª
¹ØÏµµÄÌØÕ÷£º
¡¤¹ØÏµµÄÿһÐж¨ÒåʵÌ弯µÄÒ»¸öʵÌ壬ÿһÁж¨ÒåʵÌåµÄÒ»¸öÊôÐÔ
¡¤Ã¿Ò»ÐбØÐëÓÐÒ»¸öÖ÷Â룬Ö÷ÂëÊÇÒ»¸öÊôÐÔ×飨¿ÉÒÔÊÇÒ»¸öÊôÐÔ£©£¬ËüÄÜΨһ±êʶһ¸öʵÌå
¡¤Ã¿Ò»Áбíʾһ¸öÊôÐÔ£¬ÇÒÁÐÃû²»ÄÜÖØ¸´
¡¤ÁеÄÿ¸öÖµ±ØÐëÓë¶ÔÓ¦ÊôÐÔµÄÀàÐÍÏàͬ
¡¤ÁÐÓÐȡֵ·¶Î§£¬³ÆÎªÓò
¡¤ÁÐÊDz»¿É·Ö¸îµÄ×îСÊý¾ÝÏî
¡¤ÐС¢ÁеÄ˳Ðò¶ÔÓû§Î޹ؽôÒª
¹ØÏµÐÍÊý¾Ý¿âÓëNOSQL
¹ØÏµÐÍÊý¾Ý¿â°ÑËùÓеÄÊý¾Ý¶¼Í¨¹ýÐкÍÁеĶþÔª±íÏÖÐÎʽ±íʾ³öÀ´¡£
¹ØÏµÐÍÊý¾Ý¿âµÄÓÅÊÆ£º
1. ±£³ÖÊý¾ÝµÄÒ»ÖÂÐÔ£¨ÊÂÎñ´¦Àí£©
2.ÓÉÓÚÒÔ±ê×¼»¯ÎªÇ°ÌᣬÊý¾Ý¸üеĿªÏúºÜС£¨ÏàͬµÄ×ֶλù±¾É϶¼Ö»ÓÐÒ»´¦£©
3. ¿ÉÒÔ½øÐÐJoinµÈ¸´ÔÓ²éѯ
ÆäÖÐÄܹ»±£³ÖÊý¾ÝµÄÒ»ÖÂÐÔÊǹØÏµÐÍÊý¾Ý¿âµÄ×î´óÓÅÊÆ¡£
¹ØÏµÐÍÊý¾Ý¿âµÄ²»×㣺
²»Éó¤µÄ´¦Àí
1. ´óÁ¿Êý¾ÝµÄдÈë´¦Àí
2. ΪÓÐÊý¾Ý¸üеıí×öË÷Òý»ò±í½á¹¹£¨schema£©±ä¸ü
3. ×ֶβ»¹Ì¶¨Ê±Ó¦ÓÃ
4. ¶Ô¼òµ¥²éѯÐèÒª¿ìËÙ·µ»Ø½á¹ûµÄ´¦Àí
´óÁ¿Êý¾ÝµÄдÈë´¦Àí
¶Áд¼¯ÖÐÔÚÒ»¸öÊý¾Ý¿âÉÏÈÃÊý¾Ý¿â²»¿°Öظº£¬´ó²¿·ÖÍøÕ¾ÒÑʹÓÃÖ÷´Ó¸´ÖƼ¼ÊõʵÏÖ¶Áд·ÖÀ룬ÒÔÌá¸ß¶ÁдÐÔÄܺͶÁ¿âµÄ¿ÉÀ©Õ¹ÐÔ¡£
ËùÒÔÔÚ½øÐдóÁ¿Êý¾Ý²Ù×÷ʱ£¬»áʹÓÃÊý¾Ý¿âÖ÷´Óģʽ¡£Êý¾ÝµÄдÈëÓÉÖ÷Êý¾Ý¿â¸ºÔð£¬Êý¾ÝµÄ¶ÁÈëÓÉ´ÓÊý¾Ý¿â¸ºÔ𣬿ÉÒԱȽϼòµ¥µØÍ¨¹ýÔö¼Ó´ÓÊý¾Ý¿âÀ´ÊµÏÖ¹æÄ£»¯£¬µ«ÊÇÊý¾ÝµÄдÈëÈ´ÍêȫûÓмòµ¥µÄ·½·¨À´½â¾ö¹æÄ£»¯ÎÊÌâ¡£
µÚÒ»£¬ÒªÏ뽫Êý¾ÝµÄдÈë¹æÄ£»¯£¬¿ÉÒÔ¿¼ÂǰÑÖ÷Êý¾Ý¿â´Óһ̨Ôö¼Óµ½Á½Ì¨£¬×÷Ϊ»¥Ïà¹ØÁª¸´ÖƵĶþÔªÖ÷Êý¾Ý¿âʹÓã¬È·ÊµÕâÑù¿ÉÒÔ°Ñÿ̨Ö÷Êý¾Ý¿âµÄ¸ººÉ¼õÉÙÒ»°ë£¬µ«ÊǸüд¦Àí»á·¢Éú³åÍ»£¬¿ÉÄÜ»áÔì³ÉÊý¾ÝµÄ²»Ò»Ö£¬ÎªÁ˱ÜÃâÕâÑùµÄÎÊÌ⣬ÐèÒª°Ñ¶Ôÿ¸ö±íµÄÇëÇó·Ö±ð·ÖÅ䏸ºÏÊʵÄÖ÷Êý¾Ý¿âÀ´´¦Àí¡£

µÚ¶þ£¬¿ÉÒÔ¿¼ÂǰÑÊý¾Ý¿â·Ö¸î¿ªÀ´£¬·Ö±ð·ÅÔÚ²»Í¬µÄÊý¾Ý¿â·þÎñÆ÷ÉÏ£¬±ÈÈ罫²»Í¬µÄ±í·ÅÔÚ²»Í¬µÄÊý¾Ý¿â·þÎñÆ÷ÉÏ£¬Êý¾Ý¿â·Ö¸î¿ÉÒÔ¼õÉÙÿ̨Êý¾Ý¿â·þÎñÆ÷ÉϵÄÊý¾ÝÁ¿£¬ÒÔ±ã¼õÉÙÓ²ÅÌIOµÄÊäÈë¡¢Êä³ö´¦Àí£¬ÊµÏÖÄÚ´æÉϵĸßËÙ´¦Àí¡£µ«ÊÇÓÉÓÚ·Ö±ð´æ´¢×Ö²»Í¬·þÎñÆ÷ÉϵıíÖ®¼äÎÞ·¨½øÐÐJoin´¦Àí£¬Êý¾Ý¿â·Ö¸îµÄʱºò¾ÍÐèÒªÔ¤ÏÈ¿¼ÂÇÕâЩÎÊÌ⣬Êý¾Ý¿â·Ö¸îÖ®ºó£¬Èç¹ûÒ»¶¨Òª½øÐÐJoin´¦Àí£¬¾Í±ØÐëÒªÔÚ³ÌÐòÖнøÐйØÁª£¬ÕâÊǷdz£À§Äѵġ£


ΪÓÐÊý¾Ý¸üеıí×öË÷Òý»ò±í½á¹¹±ä¸ü
ÔÚʹÓùØÏµÐÍÊý¾Ý¿âʱ£¬ÎªÁ˼ӿì²éѯËÙ¶ÈÐèÒª´´½¨Ë÷Òý£¬ÎªÁËÔö¼Ó±ØÒªµÄ×ֶξÍÒ»¶¨Òª¸Ä±ä±í½á¹¹£¬ÎªÁ˽øÐÐÕâЩ´¦Àí£¬ÐèÒª¶Ô±í½øÐй²ÏíËø¶¨£¬ÕâÆÚ¼äÊý¾Ý±ä¸ü¡¢¸üС¢²åÈ롢ɾ³ýµÈ¶¼ÊÇÎÞ·¨½øÐеġ£Èç¹ûÐèÒª½øÐÐһЩºÄʱ²Ù×÷£¬ÀýÈçΪÊý¾ÝÁ¿±È½Ï´óµÄ±í´´½¨Ë÷Òý»òÊDZä¸üÆä±í½á¹¹£¬¾ÍÐèÒªÌØ±ð×¢Ò⣬³¤Ê±¼äÄÚÊý¾Ý¿ÉÄÜÎÞ·¨½øÐиüС£

×ֶβ»¹Ì¶¨Ê±µÄÓ¦ÓÃ
Èç¹û×ֶβ»¹Ì¶¨£¬ÀûÓùØÏµÐÍÊý¾Ý¿âÒ²ÊDZȽÏÀ§Äѵģ¬ÓÐÈË»á˵£¬ÐèÒªµÄʱºò¼Ó¸ö×ֶξͿÉÒÔÁË£¬ÕâÑùµÄ·½·¨Ò²²»ÊDz»¿ÉÒÔ£¬µ«ÔÚʵ¼ÊÔËÓÃÖÐÿ´Î¶¼½øÐз´¸´µÄ±í½á¹¹±ä¸üÊǷdz£Í´¿àµÄ¡£ÄãÒ²¿ÉÒÔÔ¤ÏÈÉ趨´óÁ¿µÄÔ¤±¸×ֶΣ¬µ«ÕâÑùµÄ»°£¬Ê±¼äÒ»³¤ºÜÈÝÒ×Ū²»Çå³ý×ֶκÍÊý¾ÝµÄ¶ÔӦ״̬£¬¼´Äĸö×ֶα£´æÓÐÄÄЩÊý¾Ý¡£
¶Ô¼òµ¥²éѯÐèÒª¿ìËÙ·µ»Ø½á¹ûµÄ´¦Àí £¨ÕâÀïµÄ¡°¼òµ¥¡±Ö¸µÄÊÇûÓи´ÔӵIJéѯÌõ¼þ£©
ÕâÒ»µã³Æ²»ÉÏÊÇȱµã£¬µ«²»¹ÜÔõÑù£¬¹ØÏµÐÍÊý¾Ý¿â²¢²»Éó¤¶Ô¼òµ¥µÄ²éѯ¿ìËÙ·µ»Ø½á¹û£¬ÒòΪ¹ØÏµÐÍÊý¾Ý¿âÊÇʹÓÃרÃŵÄsqlÓïÑÔ½øÐÐÊý¾Ý¶ÁÈ¡µÄ£¬ËüÐèÒª¶ÔsqlÓëÔ½ÄϽøÐнâÎö£¬Í¬Ê±»¹ÓжԱíµÄËø¶¨ºÍ½âËøµÈÕâÑùµÄ¶îÍ⿪Ïú£¬ÕâÀï²¢²»ÊÇ˵¹ØÏµÐÍÊý¾Ý¿âµÄËÙ¶ÈÌ«Âý£¬¶øÖ»ÊÇÏë¸æËß´ó¼ÒÈôÏ£Íû¶Ô¼òµ¥²éѯ½øÐиßËÙ´¦Àí£¬ÔòûÓбØÒª·ÇʹÓùØÏµÐÍÊý¾Ý¿â²»¿É¡£
NoSQLÊý¾Ý¿â
¹ØÏµÐÍÊý¾Ý¿âÓ¦Óù㷺£¬ÄܽøÐÐÊÂÎñ´¦ÀíºÍ±íÁ¬½ÓµÈ¸´ÔÓ²éѯ¡£Ïà¶ÔµØ£¬NoSQLÊý¾Ý¿âÖ»Ó¦ÓÃÔÚÌØ¶¨ÁìÓò£¬»ù±¾Éϲ»½øÐи´ÔӵĴ¦Àí£¬µ«ËüǡǡÃÖ²¹ÁË֮ǰËùÁоٵĹØÏµÐÍÊý¾Ý¿âµÄ²»×ãÖ®´¦¡£
Óŵ㣺
Ò×ÓÚÊý¾ÝµÄ·ÖÉ¢
¸÷¸öÊý¾ÝÖ®¼ä´æÔÚ¹ØÁªÊǹØÏµÐÍÊý¾Ý¿âµÃÃûµÄÖ÷ÒªÔÒò£¬ÎªÁ˽øÐÐjoin´¦Àí£¬¹ØÏµÐÍÊý¾Ý¿â²»µÃ²»°ÑÊý¾Ý´æ´¢ÔÚͬһ¸ö·þÎñÆ÷ÄÚ£¬Õâ²»ÀûÓÚÊý¾ÝµÄ·ÖÉ¢£¬ÕâÒ²ÊǹØÏµÐÍÊý¾Ý¿â²¢²»Éó¤´óÊý¾ÝÁ¿µÄдÈë´¦ÀíµÄÔÒò¡£Ïà·´NoSQLÊý¾Ý¿âÔ±¾¾Í²»Ö§³ÖJoin´¦Àí£¬¸÷¸öÊý¾Ý¶¼ÊǶÀÁ¢Éè¼ÆµÄ£¬ºÜÈÝÒ×°ÑÊý¾Ý·ÖÉ¢ÔÚ¶à¸ö·þÎñÆ÷ÉÏ£¬¹Ê¼õÉÙÁËÿ¸ö·þÎñÆ÷ÉϵÄÊý¾ÝÁ¿£¬¼´Ê¹Òª´¦Àí´óÁ¿Êý¾ÝµÄдÈ룬Ҳ±äµÃ¸ü¼ÓÈÝÒ×£¬Êý¾ÝµÄ¶ÁÈë²Ù×÷µ±È»Ò²Í¬ÑùÈÝÒס£
µäÐ͵ÄNoSQLÊý¾Ý¿â
ÁÙʱÐÔ¼üÖµ´æ´¢£¨memcached¡¢Redis£©¡¢ÓÀ¾ÃÐÔ¼üÖµ´æ´¢£¨ROMA¡¢Redis£©¡¢ÃæÏòÎĵµµÄÊý¾Ý¿â£¨MongoDB¡¢CouchDB£©¡¢ÃæÏòÁеÄÊý¾Ý¿â£¨Cassandra¡¢HBase£©
Ò»¡¢ ¼üÖµ´æ´¢
ËüµÄÊý¾ÝÊÇÒÔ¼üÖµµÄÐÎʽ´æ´¢µÄ£¬ËäÈ»ËüµÄËٶȷdz£¿ì£¬µ«»ù±¾ÉÏÖ»ÄÜͨ¹ý¼üµÄÍêȫһÖ²éѯ»ñÈ¡Êý¾Ý£¬¸ù¾ÝÊý¾ÝµÄ±£´æ·½Ê½¿ÉÒÔ·ÖΪÁÙʱÐÔ¡¢ÓÀ¾ÃÐÔºÍÁ½Õß¼æ¾ß
ÈýÖÖ¡£
£¨1£©ÁÙʱÐÔ
ËùνÁÙʱÐÔ¾ÍÊÇÊý¾ÝÓпÉÄܶªÊ§£¬memcached°ÑËùÓÐÊý¾Ý¶¼±£´æÔÚÄÚ´æÖУ¬ÕâÑù±£´æºÍ¶ÁÈ¡µÄËٶȷdz£¿ì£¬µ«Êǵ±memcachedֹͣʱ£¬Êý¾Ý¾Í²»´æÔÚÁË¡£ÓÉÓÚÊý¾Ý±£´æÔÚÄÚ´æÖУ¬ËùÒÔÎÞ·¨²Ù×÷³¬³öÄÚ´æÈÝÁ¿µÄÊý¾Ý£¬¾ÉÊý¾Ý»á¶ªÊ§¡£×ܽáÀ´Ëµ£º
¡£ÔÚÄÚ´æÖб£´æÊý¾Ý
¡£¿ÉÒÔ½øÐзdz£¿ìËٵı£´æºÍ¶ÁÈ¡´¦Àí
¡£Êý¾ÝÓпÉÄܶªÊ§
£¨2£©ÓÀ¾ÃÐÔ
ËùνÓÀ¾ÃÐÔ¾ÍÊÇÊý¾Ý²»»á¶ªÊ§£¬ÕâÀïµÄ¼üÖµ´æ´¢ÊǰÑÊý¾Ý±£´æÔÚÓ²ÅÌÉÏ£¬ÓëÁÙʱÐÔ±ÈÆðÀ´£¬ÓÉÓÚ±ØÈ»Òª·¢Éú¶ÔÓ²Å̵ÄIO²Ù×÷£¬ËùÒÔÐÔÄÜÉÏ»¹ÊÇÓвî¾àµÄ£¬µ«Êý¾Ý²»»á¶ªÊ§ÊÇËü×î´óµÄÓÅÊÆ¡£×ܽáÀ´Ëµ£º
¡£ÔÚÓ²ÅÌÉϱ£´æÊý¾Ý
¡£¿ÉÒÔ½øÐзdz£¿ìËٵı£´æºÍ¶ÁÈ¡´¦Àí£¨µ«ÎÞ·¨ÓëmemcachedÏà±È£©
¡£Êý¾Ý²»»á¶ªÊ§
£¨3£© Á½Õ߼汸
RedisÊôÓÚÕâÖÖÀàÐÍ¡£RedisÓÐÐ©ÌØÊ⣬ÁÙʱÐÔºÍÓÀ¾ÃÐÔ¼æ¾ß¡£RedisÊ×ÏȰÑÊý¾Ý±£´æÔÚÄÚ´æÖУ¬ÔÚÂú×ãÌØ¶¨Ìõ¼þ£¨Ä¬ÈÏÊÇ
15·ÖÖÓÒ»´ÎÒÔÉÏ£¬5·ÖÖÓÄÚ10¸öÒÔÉÏ£¬1·ÖÖÓÄÚ10000¸öÒÔÉϵļü·¢Éú±ä¸ü£©µÄʱºò½«Êý¾ÝдÈëµ½Ó²ÅÌÖУ¬ÕâÑù¼ÈÈ·±£ÁËÄÚ´æÖÐÊý¾ÝµÄ´¦ÀíËÙ¶È£¬ÓÖ¿ÉÒÔͨ¹ýдÈëÓ²ÅÌÀ´±£Ö¤Êý¾ÝµÄÓÀ¾ÃÐÔ£¬ÕâÖÖÀàÐ͵ÄÊý¾Ý¿âÌØ±ðÊʺϴ¦ÀíÊý×éÀàÐ͵ÄÊý¾Ý¡£×ܽáÀ´Ëµ£º
¡£Í¬Ê±ÔÚÄÚ´æºÍÓ²ÅÌÉϱ£´æÊý¾Ý
¡£¿ÉÒÔ½øÐзdz£¿ìËٵı£´æºÍ¶ÁÈ¡´¦Àí
¡£±£´æÔÚÓ²ÅÌÉϵÄÊý¾Ý²»»áÏûʧ£¨¿ÉÒÔ»Ö¸´£©
¡£ÊʺÏÓÚ´¦ÀíÊý×éÀàÐ͵ÄÊý¾Ý
¶þ¡¢ÃæÏòÎĵµµÄÊý¾Ý¿â
MongoDB¡¢CouchDBÊôÓÚÕâÖÖÀàÐÍ£¬ËüÃÇÊôÓÚNoSQLÊý¾Ý¿â£¬µ«Óë¼üÖµ´æ´¢ÏàÒì¡£
£¨1£©²»¶¨Òå±í½á¹¹
¼´Ê¹²»¶¨Òå±í½á¹¹£¬Ò²¿ÉÒÔÏñ¶¨ÒåÁ˱í½á¹¹Ò»ÑùʹÓ㬻¹Ê¡È¥Á˱ä¸ü±í½á¹¹µÄÂé·³¡£
£¨2£©¿ÉÒÔʹÓø´ÔӵIJéѯÌõ¼þ
¸ú¼üÖµ´æ´¢²»Í¬µÄÊÇ£¬ÃæÏòÎĵµµÄÊý¾Ý¿â¿ÉÒÔͨ¹ý¸´ÔӵIJéѯÌõ¼þÀ´»ñÈ¡Êý¾Ý£¬ËäÈ»²»¾ß±¸ÊÂÎñ´¦ÀíºÍJoinÕâЩ¹ØÏµÐÍÊý¾Ý¿âËù¾ßÓеĴ¦ÀíÄÜÁ¦£¬µ«³õ´ÎÒÔÍâµÄÆäËû´¦Àí»ù±¾É϶¼ÄÜʵÏÖ¡£
Èý¡¢ ÃæÏòÁеÄÊý¾Ý¿â
Cassandra¡¢HBae¡¢HyperTableÊôÓÚÕâÖÖÀàÐÍ£¬ÓÉÓÚ½üÄêÀ´Êý¾ÝÁ¿³öÏÖ±¬·¢ÐÔÔö³¤£¬ÕâÖÖÀàÐ͵ÄNoSQLÊý¾Ý¿âÓÈÆäÒýÈëעĿ¡£
ÆÕͨµÄ¹ØÏµÐÍÊý¾Ý¿â¶¼ÊÇÒÔÐÐΪµ¥Î»À´´æ´¢Êý¾ÝµÄ£¬Éó¤ÒÔÐÐΪµ¥Î»µÄ¶ÁÈë´¦Àí£¬±ÈÈçÌØ¶¨Ìõ¼þÊý¾ÝµÄ»ñÈ¡¡£Òò´Ë£¬¹ØÏµÐÍÊý¾Ý¿âÒ²±»³ÉÎªÃæÏòÐеÄÊý¾Ý¿â¡£Ïà·´£¬ÃæÏòÁеÄÊý¾Ý¿âÊÇÒÔÁÐΪµ¥Î»À´´æ´¢Êý¾ÝµÄ£¬Éó¤ÒÔÁÐΪµ¥Î»¶ÁÈëÊý¾Ý¡£

ÃæÏòÁеÄÊý¾Ý¿â¾ßÓиãÀ©Õ¹ÐÔ£¬¼´Ê¹Êý¾ÝÔö¼ÓÒ²²»»á½µµÍÏàÓ¦µÄ´¦ÀíËÙ¶È£¨ÌرðÊÇдÈëËÙ¶È£©£¬ËùÒÔËüÖ÷ÒªÓ¦ÓÃÓÚÐèÒª´¦Àí´óÁ¿Êý¾ÝµÄÇé¿ö¡£ÁíÍ⣬°ÑËü×÷ΪÅú´¦Àí³ÌÐòµÄ´æ´¢Æ÷À´¶Ô´óÁ¿Êý¾Ý½øÐиüÐÂÒ²ÊǷdz£ÓÐÓõġ£µ«ÓÉÓÚÃæÏòÁеÄÊý¾Ý¿â¸úÏÖÐÐÊý¾Ý¿â´æ´¢µÄ˼ά·½Ê½Óкܴó²»Í¬£¬¹ÊÓ¦ÓÃÆðÀ´Ê®·ÖÀ§ÄÑ¡£
×ܽ᣺¹ØÏµÐÍÊý¾Ý¿âÓëNoSQLÊý¾Ý¿â²¢·Ç¶ÔÁ¢¶øÊÇ»¥²¹µÄ¹ØÏµ£¬¼´Í¨³£Çé¿öÏÂʹÓùØÏµÐÍÊý¾Ý¿â£¬ÔÚÊʺÏʹÓÃNoSQLµÄʱºòʹÓÃNoSQLÊý¾Ý¿â£¬ÈÃNoSQLÊý¾Ý¿â¶Ô¹ØÏµÐÍÊý¾Ý¿âµÄ²»×ã½øÐÐÃÖ²¹¡£
|