Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
dzÎöMongoDBÊý¾Ý¿âµÄº£Á¿Êý¾Ý´æ´¢Ó¦ÓÃ
 
×÷Õߣº²Üΰ À´Ô´£º³ÌÐòÔ± ·¢²¼ÓÚ£º2015-05-12
  4370  次浏览      27
 

¡¾ÕªÒª¡¿µ±½ñÒѽøÈë´óÊý¾Ýʱ´ú£¬ÌرðÊÇ´ó¹æÄ£»¥ÁªÍøweb2.0Ó¦Óò»¶Ï·¢Õ¹¼°ÔƼÆËãËùÐèÒªµÄº£Á¿´æ´¢ºÍº£Á¿¼ÆËã·¢Õ¹£¬´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿âÒÑÎÞ·¨Âú×ãÕâ·½ÃæµÄÐèÇó¡£Ëæ×ÅNoSQLÊý¾Ý¿âµÄ²»¶Ï·¢Õ¹ºÍ³ÉÊ죬¿ÉÒԽϺõؽâ¾öº£Á¿´æ´¢ºÍº£Á¿¼ÆËã·½ÃæµÄÓ¦ÓÃÐèÇó¡£±¾ÎÄÖØµãÃèÊö×÷ΪNoSQLÖ®Ò»MongoDBÊý¾Ý¿âÔÚº£Á¿Êý¾Ý´æ´¢·½ÃæµÄÓ¦Óá£

1 ÒýÑÔ

NoSQL,È«³ÆÊÇ¡°Not Only Sql¡±£¬Ö¸µÄÊǷǹØÏµÐ͵ÄÊý¾Ý¿â¡£ÕâÀàÊý¾Ý¿âÖ÷ÒªÓÐÕâÐ©ÌØµã£º·Ç¹ØÏµÐ͵ġ¢·Ö²¼Ê½¡¢¿ªÔ´µÄ¡¢Ë®Æ½¿ÉÀ©Õ¹µÄ¡£Ô­Ê¼Ä¿µÄÊÇΪÁË´ó¹æÄ£webÓ¦Óã¬ÕⳡȫеÄÊý¾Ý¿â¸ïÃüÔ˶¯ÔçÆÚ¾ÍÓÐÈËÌá³ö£¬·¢Õ¹ÖÁ2009ÄêÇ÷ÊÆÔ½·¢¸ßÕÇ¡£·Ç¹ØÏµÐ͵ÄÊý¾Ý´æ´¢Í¨³£µÄÓ¦ÓÃÈ磺ģʽ×ÔÓС¢Ö§³Ö¼òÒ׸´ÖÆ¡¢¼òµ¥µÄAPI¡¢×îÖÕµÄÒ»ÖÂÐÔ£¨·ÇACID£©¡¢´óÈÝÁ¿Êý¾ÝµÈ¡£ËüµÄÖÖÀà·±¶à£¬ÈçÁÐʽÊý¾Ý¿â£¨Hadoop/HBase¡¢Cassandra¡¢Hypertable¡¢Amazon SimpleDBµÈ£©¡¢ÎĵµÐÍÊý¾Ý¿â£¨MongoDB¡¢CouchDB¡¢OrientDBµÈ£©¡¢¼üÖµÊý¾Ý¿â£¨Azure Table Storage¡¢MEMBASE¡¢Redis¡¢Berkeley DB¡¢MemcacheDBµÈ£©¡¢Í¼ÐÎÊý¾Ý¿â£¨Neo4J¡¢Infinite Graph¡¢Sones¡¢BigdataµÈ£©¡¢ÃæÏò¶ÔÏóÊý¾Ý¿â£¨db4o¡¢Versant¡¢Objectivity¡¢StarcounterµÈ£©¡¢Íø¸ñ¼°ÔÆÊý¾Ý¿â£¨GigaSpaces¡¢Queplix¡¢HazelcastµÈ£©¡¢XMLÊý¾Ý¿â£¨Mark Logic Server¡¢EMC Documentum xDB¡¢BaseX¡¢Berkeley DB XMLµÈ£©¡¢¶àÖµÊý¾Ý¿â£¨U2¡¢OpenInsight¡¢OpenQMµÈ£©¼°ÆäËû·Ç¹ØÏµÐÍÊý¾Ý¿â£¨ÈçFileDB£©µÈ¡£

MongoDBÊôÓÚNoSQLÊý¾ÝµÄÒ»ÖÖ£¬ÊÇÓÉ10gen¹«Ë¾ÌṩµÄÒ»¸ö¿ªÔ´µÄ¡¢Ä£Ê½×ÔÓɵġ¢ÃæÏòÎĵµ´æ´¢µÄ¡¢·Ö²¼Ê½µÄÊý¾Ý¿â£¬ÊÇÒ»¸ö½éÓÚ¹ØÏµÊý¾Ý¿âºÍ·Ç¹ØÏµÊý¾Ý¿âÖ®¼äµÄ²úÆ·¡£ÓÉC++ÓïÑÔ±àд£¬Ö¼ÔÚΪWebÓ¦ÓÃÌṩ¿ÉÀ©Õ¹µÄ¸ßÐÔÄÜÊý¾Ý´æ´¢½â¾ö·½°¸¡£ËûÖ§³ÖµÄÊý¾Ý½á¹¹·Ç³£ËÉÉ¢£¬ÊÇÀàËÆJsonµÄBson¸ñʽ£¬Òò´Ë¿ÉÒÔ´æ´¢±È½Ï¸´ÔÓµÄÊý¾ÝÀàÐÍ¡£

Ëû¿ÉÒÔÔËÐÐÔÚSolaris¡¢Linux¡¢WindowsºÍOSXƽ̨ÉÏ£¬Ö§³Ö32λºÍ64λӦÓã¬ÆäÖÐÔÚ32λӦÓÃÖе¥¸öÊý¾Ý¿â×î´óÈÝÁ¿Îª2G£¬ÔÚ64λӦÓÃÖд洢ÈÝÁ¿´óСֻÓëʵ¼Ê´æ´¢¿Õ¼ä´óСÓйأ¬²¢ÇÒÌṩÁËJava¡¢C#¡¢PHP¡¢C¡¢C++¡¢Javascript¡¢Python¡¢Ruby¡¢PerlµÈ¶àÖÖÓïÑÔµÄÇý¶¯³ÌÐò£¬×îеÄÉú²ú°æ±¾Îª2.0£¬¹Ù·½ÏÂÔØµØÖ·£ºhttp://www.mongodb.org/downloads¡£Ä¿Ç°ÕýÔÚʹÓÃËûµÄÍøÕ¾ºÍÆóÒµÒѳ¬¹ýÁË100¼Ò£¬ÈçÊÓ¾õÖйú¡¢´óÖÚµãÆÀÍø¡¢ÌÔ±¦Íø¡¢Ê¢´ó¡¢Foursquare¡¢Wordnik¡¢OpenShift¡¢SourceForge¡¢GithubµÈ¡£

Ëæ×ÅÆóÒµÊý¾Ý²»¶Ï»ýÀÛºÍÔö¼Ó¼°Web2.0Ó¦Óò»¶ÏÏòǰ·¢Õ¹£¬ÒѽøÈëÁ˸öÈËÐÅϢʱ´ú£¬¶ÔÓÚ´óÖÐÐÍÆóÒµÀ´Ëµ£¬¿ÉÄÜÿÌ콫²úÉú´óÁ¿µÄÊý¾Ý£¬À´Ö®ÓÚ¸÷Ààϵͳ£¬Èç¸÷ÀàÎĵµ(OAÎĵµ¡¢ÏîÄ¿ÎĵµµÈ)¡¢Éè¼ÆÍ¼Ö½¡¢¸ßÇåͼƬ¡¢ÊÓÆµµÈ£¬¶ÔÓÚÔ±¹¤À´Ëµ£¬¸ü¹ØÐĵÄÊǸöÈËÐÅÏ¢·½ÃæµÄ´æ´¢ºÍ¼ÆË㣬µ±ÕâЩÐÅÏ¢Á¿×ã¹»´óʱ£¬ÏëҪʵʱÌáÈ¡»ò·ÖÎöÊý¾Ý£¬´«Í³¼¯ÖÐʽ·½Ê½ÄÑÒÔÂú×ãÕâ·½ÃæµÄÐèÇó£¬Òò´Ë²ÉÓ÷ֲ¼Ê½µÄ´æ´¢ºÍ¼ÆËã³ÉΪ±ØÈ»µÄÑ¡Ôñ£¬Ò»·½ÃæÖ÷Òª½â¾öº£Á¿´æ´¢ÎÊÌ⣬ÁíÒ»·½Ãæ½â¾öº£Á¿¼ÆËãÎÊÌâ¡£²ÉÓÃMongoDBµÄÊý¾Ý¿â¼¼ÊõÄÜÓÐЧµØ½â¾ö·Ö²¼Ê½·½ÃæµÄÓ¦Ó㬱¾ÎÄÖØµã·ÖÎöMongoDBÔÚº£Á¿Êý¾Ý´æ´¢·½ÃæµÄÓ¦Óá£

2 ¸ÅÊö

2.1 MongoDBµÄÖ÷ÒªÌØµã

£¨1£©Îļþ´æ´¢¸ñʽΪBson£¬Ê¹ÓÃÒ×ÓÚÕÆÎÕºÍÀí½âµÄJson·ç¸ñÓï·¨¡£Ïà¶ÔJsonÀ´Ëµ£¬BsonÓµÓиüºÃµÄÐÔÄÜ£¬Ö÷Òª±íÏÖΪ¸ü¿ìµÄ±éÀúËÙ¶È¡¢²Ù×÷¸ü¼òÒס¢Ôö¼ÓÁ˶îÍâµÄÊý¾ÝÀàÐÍ¡£

£¨2£©Ä£Ê½×ÔÓÉ£¬Ö§³ÖǶÈë×ÓÎĵµºÍÊý×飬ÎÞÐèÊÂÏÈ´´½¨Êý¾Ý½á¹¹£¬ÊôÓÚÄæ¹æ·¶»¯µÄÊý¾ÝÄ£ÐÍ£¬ÓÐÀûÓÚÌá¸ß²éѯËÙ¶È¡£

£¨3£©¶¯Ì¬²éѯ£¬Ö§³Ö·á¸»µÄ²éѯ±í´ïʽ£¬Ê¹ÓÃJsonÐÎʽµÄ±ê¼Ç£¬¿ÉÇáÒײéѯÎĵµÖÐÄÚǶµÄ¶ÔÏóºÍÊý×é¼°×ÓÎĵµ¡£

£¨4£©ÍêÕûµÄË÷ÒýÖ§³Ö£¬°üÀ¨ÎĵµÄÚǶ¶ÔÏóºÍÊý¾Ý£¬Í¬Ê±»¹ÌṩÁËÈ«ÎÄË÷Òý·½Ê½£¬MongoDBµÄ²éѯÓÅ»¯Æ÷»á·ÖÎö²éѯ±í´ïʽ£¬²¢Éú³ÉÒ»¸ö¸ßЧµÄ²éѯ¼Æ»®¡£

£¨5£©Ê¹ÓøßЧµÄ¶þ½øÖÆÊý¾Ý´æ´¢£¬Êʺϴ洢´óÐͶÔÏó£¨Èç¸ßÇåͼƬ¡¢ÊÓÆµµÈ£©¡£

£¨6£©Ö§³Ö¶àÖÖ¸´ÖÆÄ£Ê½£¬ÌṩÈßÓ༰×Ô¶¯¹ÊÕÏ×ªÒÆ¡£Ö§³ÖMaster-Slave¡¢Replica Pairs/Replica Sets¡¢ÓÐÏÞMaster-Masterģʽ¡£

£¨7£©Ö§³Ö·þÎñ¶Ë½Å±¾ºÍMap/Reduce£¬¿ÉÒÔʵÏÖº£Á¿Êý¾Ý¼ÆË㣬¼´ÊµÏÖÔÆ¼ÆË㹦ÄÜ¡£

£¨8£©ÐÔÄܸߡ¢Ëٶȿ졣ÔÚ¶àÊý³¡ºÏ£¬Æä²éѯËٶȶÔÓÚMySQLÒª¿ìµÄ¶à£¬¶ÔÓÚCPUÕ¼Ó÷dz£Ð¡¡£²¿ÊðºÜ¼òµ¥£¬¼¸ºõÊÇÁãÅäÖá£

£¨9£©×Ô¶¯´¦ÀíË鯬£¬Ö§³Ö×Ô¶¯·ÖƬ¹¦ÄÜʵÏÖˮƽÀ©Õ¹µÄÊý¾Ý¿â¼¯Èº£¬¿ÉÒÔ¶¯Ì¬Ìí¼Ó»òÒÆ³ý½Úµã¡£

£¨10£©ÄÚÖÃGridFS£¬Ö§³Öº£Á¿´æ´¢¡£

£¨11£©¿Éͨ¹ýÍøÂç·ÃÎÊ£¬²ÉÓøßЧµÄMongoDBÍøÂçЭÒ飬ÔÚÐÔÄÜ·½ÃæÒªÓÅÓÚhttp»òRestЭÒé¡£

£¨12£©µÚÈý·½Ö§³Ö·á¸»£¬MongoDBÉçÇø»îÔ¾£¬Ô½À´Ô½¶àµÄ¹«Ë¾ºÍÍøÕ¾ÔÚÉú²ú»·¾³ÖÐʹÓÃMongoDB½øÐм¼Êõ¼Ü¹¹ÓÅ»¯£¬Í¬Ê±ÓÉ10gen¹«Ë¾¹Ù·½Ìṩǿ´ó¼¼ÊõÖ§³Ö¡£

2.2 MongoDBµÄÊÊÓó¡¾°

MongoDBµÄÖ÷ҪĿ±êÊÇÔÚ¼ü/Öµ´æ´¢·½Ê½£¨ÌṩÁ˸ßÐÔÄܺ͸߶ÈÉìËõÐÔ£©ÒÔ¼°´«Í³µÄRDBMSϵͳ£¨·á¸»µÄ¹¦ÄÜ£©¼ÜÆðÒ»×ùÇÅÁº£¬¼¯Á½ÕßµÄÓÅÊÆÓÚÒ»Éí¡£

£¨1£©ÍøÕ¾Êý¾Ý£ºMongoDB·Ç³£ÊʺÏʵʱµÄ²åÈ룬¸üÐÂÓë²éѯ£¬²¢¾ß±¸ÍøÕ¾ÊµÊ±Êý¾Ý´æ´¢ËùÐèµÄ¸´ÖƼ°¸ß¶ÈÉìËõÐÔ¡£

£¨2£©»º´æ£ºÓÉÓÚÐÔÄܸܺߣ¬MongoDBÒ²ÊʺÏ×÷ΪÐÅÏ¢»ù´¡ÉèÊ©µÄ»º´æ²ã¡£ÔÚÏµÍ³ÖØÆôÖ®ºó£¬ÓÉMongoDB´î½¨µÄ³Ö¾Ã»¯»º´æ²ã¿ÉÒÔ±ÜÃâϲãµÄÊý¾ÝÔ´¹ýÔØ¡£

£¨3£©´ó³ß´ç£¬µÍ¼ÛÖµµÄÊý¾Ý£ºÊ¹Óô«Í³µÄ¹ØÏµÐÍÊý¾Ý¿â´æ´¢Ò»Ð©Êý¾Ýʱ¿ÉÄÜ»á±È½Ï°º¹ó£¬ÔÚ´Ë֮ǰ£¬ºÜ¶àʱºò³ÌÐòÔ±ÍùÍù»áÑ¡Ôñ´«Í³µÄÎļþ½øÐд洢¡£

£¨4£©¸ßÉìËõÐԵij¡¾°£ºMongoDB·Ç³£ÊʺÏÓÉÊýÊ®»òÊý°Ų̀·þÎñÆ÷×é³ÉµÄÊý¾Ý¿â¡£MongoDBµÄ·ÏßͼÖÐÒѾ­°üº¬¶ÔMapReduce
ÒýÇæµÄÄÚÖÃÖ§³Ö¡£

£¨5£©ÓÃÓÚ¶ÔÏó¼°JSONÊý¾ÝµÄ´æ´¢£ºMongoDBµÄBsonÊý¾Ý¸ñʽ·Ç³£ÊʺÏÎĵµ»¯¸ñʽµÄ´æ´¢¼°²éѯ¡£

2.3 MongoDBµÄÌåϵ½á¹¹

MongoDBÊÇÓÉһϵÁÐÎïÀíÎļþ£¨Êý¾ÝÎļþ£¬ÈÕÖ¾ÎļþµÈ£©µÄ¼¯ºÏÓëÖ®¶ÔÓ¦µÄÂß¼­½á¹¹£¨¼¯ºÏ¡¢ÎĵµµÈ£©¹¹³ÉµÄÊý¾Ý¿â¡£

MongoDBµÄÂß¼­½á¹¹Êµ¼ÊÊÇÒ»ÖÖ²ã´Î½á¹¹£¬ÓÉÎĵµ£¨document£¬Ï൱ÓÚ¹ØÏµÊý¾Ý¿âÖеÄrow£©¡¢¼¯ºÏ£¨collection£¬Ï൱ÓÚ¹ØÏµÊý¾Ý¿âÖеÄtable£©¡¢Êý¾Ý¿â£¨database£¬Ï൱ÓÚ¹ØÏµÊý¾Ý¿âÖеÄdatabase£©ÕâÈý²¿·Ö×é³É¡£

Ò»¸öMongoDBʵÀýÖ§³Ö¶à¸öÊý¾Ý¿â¡£ÔÚMongoDBÄÚ²¿£¬Ã¿¸öÊý¾Ý¿â¶¼°üº¬Ò»¸ö.nsÎļþºÍһЩÊý¾ÝÎļþ£¬²ÉÓÃÔ¤·ÖÅä¿Õ¼äµÄ»úÖÆ£¬Ê¼ÖÕ±£³Ö¶îÍâµÄ¿Õ¼äºÍ¿ÕÓàµÄÊý¾ÝÎļþ£¬´Ó¶øÓÐЧ±ÜÃâÁËÓÉÓÚÊý¾Ý±©Ôö´øÀ´µÄ´ÅÅÌѹÁ¦¹ý´óÎÊÌ⡣ÿ¸öÔ¤·ÖÅäµÄÎļþ¶¼ÓÃ0½øÐÐÌî³ä£¬Êý¾ÝÎļþÿзÖÅäÒ»´Î£¬ËûµÄ´óС¶¼»áÊÇÉÏÒ»¸öÊý¾ÝÎļþ´óСµÄ2±¶£¬Ã¿¸öÊý¾ÝÎļþ×î´óΪ2G¡£

2.4 MongoDBÓëMS SQL ServerµÄÓï¾ä¶ÔÕÕ

MongoDBÌṩÁ˹¦ÄܷḻµÄ²éѯ±í´ïʽ£¬¿ÉÒÔʵÏÖ¾ø´ó¶àÊý¹ØÏµÊý¾Ý¿âµÄsqlÓï¾ä¹¦ÄÜ£¬ÒÔ±íemployee(id,name,age)¾ÙÀý¶ÔÕÕ˵Ã÷£¬ÈçÏÂͼ1Ëùʾ¡£

ͼ1 MongoDBÓëMS SQL ServerÓï¾ä¶ÔÕÕ

3 ¹ý³Ì·ÖÎöÓë²âÊÔ

3.1 GridFS¸ÅÊö

ÓÉÓÚMongoDBÖеÄBson¶ÔÏó´óСÊÇÓÐÏÞÖÆµÄ£¬ÔÚ1.7°æ±¾ÒÔǰµ¥¸öBson¶ÔÏó×î´óÈÝÁ¿Îª4M£¬1.7°æ±¾ÒԺ󵥸öBson¶ÔÏó×î´óÈÝÁ¿Îª16M[5]¡£¶ÔÓÚÒ»°ãµÄÎļþ´æ´¢£¬µ¥¸ö¶ÔÏóµÄ4µ½16MµÄ´æ´¢ÈÝÁ¿Äܹ»Âú×ãÐèÇ󣬵«ÎÞ·¨Âú×ã¶ÔÓÚһЩ´óÎļþµÄ´æ´¢£¬Èç¸ßÇåͼƬ¡¢Éè¼ÆÍ¼Ö½¡¢ÊÓÆµµÈ£¬Òò´ËÔÚº£Á¿Êý¾Ý´æ´¢·½Ã棬MongoDBÌṩÁËÄÚÖõÄGridFS£¬¿ÉÒÔ½«Ò»¸ö´óÎļþ·Ö¸î³ÉΪ¶à¸ö½ÏСµÄÎĵµ£¬¿ÉÒÔÖ¸¶¨Îļþ·Ö¿é±ê×¼£¬¶ÔÓû§ÊÇ͸Ã÷µÄ¡£GridFSʹÓÃÁ½¸öÊý¾Ý½á¹¹À´´æ´¢Êý¾Ý£ºfiles£¨°üº¬ÔªÊý¾Ý¶ÔÏ󣩡¢chunks£¨°üº¬ÆäËûһЩÏà¹ØÐÅÏ¢µÄ¶þ½øÖƿ飩¡£ÎªÁËʹ¶à¸öGridFSÃüÃûΪһ¸öµ¥Ò»µÄÊý¾Ý¿â£¬ÎļþºÍ¿é¶¼ÓÐÒ»¸öǰ׺£¬Ä¬ÈÏǰ׺Ϊfs£¬Óû§ÓÐȨ¸Ä±äÕâ¸öǰ׺¡£

GridFS¶ÔJava¡¢C#¡¢Perl¡¢PHP¡¢Python¡¢RubyµÈ³ÌÐòÑÔÓï¾ùÖ§³Ö£¬ÇÒÌṩÁËÁ¼ºÃµÄAPI½Ó¿Ú¡£

3.2 »ùÓÚGridFSµÄº£Á¿Êý¾Ý´æ´¢²âÊÔ

±¾ÎÄÖ÷Òª²ÉÓÃMongoDB×îаæ2.0¼°¹Ù·½ÌṩµÄC#ÓïÑÔÇý¶¯½øÐвâÊÔ£¬C#Çý¶¯ÏÂÔØµØÖ·£ºhttps://github.com/mongodb/Mongo-csharp-driver¡£

MongoDBÔÚbinĿ¼ÏÂÌṩÁËһϵÁÐÓÐÓõŤ¾ß£¬¿ÉÒԺܷ½±ãµÄ½øÐÐÔËά¹ÜÀí£º

£¨1£©bsondump£º½«Bson¸ñʽµÄÎļþת´¢ÎªJson¸ñʽµÄÊý¾Ý¡£

£¨2£©mongo£º¿Í»§¶ËÃüÁîÐй¤¾ß£¬Ö§³ÖjsÓï·¨¡£

£¨3£©mongod£ºÊý¾Ý¿â·þÎñ¶Ë£¬Ã¿¸öʵÀýÆô¶¯Ò»¸ö½ø³Ì£¬¿ÉÒÔforkΪºǫ́ÔËÐС£

£¨4£©mongodump£ºÊý¾Ý¿â±¸·Ý¹¤¾ß¡£

£¨5£©mongorestore£ºÊý¾Ý¿â»Ö¸´¹¤¾ß¡£

£¨6£©mongoexport£ºÊý¾Ýµ¼³ö¹¤¾ß¡£

£¨7£©mongoimport£ºÊý¾Ýµ¼È빤¾ß¡£

£¨8£©mongofiles£ºGridFS¹ÜÀí¹¤¾ß£¬¿ÉʵÏÖ¶þ½øÖÆÎļþµÄ´æÈ¡¡£

£¨9£©mongos:·ÖƬ·ÓÉ£¬Èç¹ûʹÓÃÁËsharding¹¦ÄÜ£¬ÔòÓ¦ÓóÌÐòÁ¬½ÓµÄÊÇmongos£¬¶ø·Çmongod¡£

£¨10£©mongosniff£ºÕâÒ»¹¤¾ßµÄ×÷ÓÃÀàËÆÓÚtcpdump£¬²»Í¬µÄÊÇËûÖ»¼à¿ØMongoDBÏà¹Ø°üÇëÇ󣬲¢ÇÒÊÇÒÔÖ¸¶¨µÄ¿É¶ÁÐÔµÄÐÎʽÊä³ö¡£

£¨11£©mongostat£ºÊµÊ±ÐÔÄÜ¼à¿Ø¹¤¾ß¡£

ͬʱÓкü¸¸öµÚÈý·½ÌṩµÄ¿Í»§¶ËͼÐι¤¾ß£¬ÈçMongoVUE¡¢RockMongo¡¢MongoHubµÈ£¬·½±ã¹ÜÀíºÍά»¤¡£

GridFS½áºÏ×Ô¶¯·ÖƬ¼°×Ô¶¯¸´ÖƼ¼Êõ£¬¿ÉÒÔʵÏÖ¸ßÐÔÄܵķֲ¼Ê½Êý¾Ý¿â¼¯Èº¼Ü¹¹£¬´Ó¶ø½øÐк£Á¿Êý¾Ý´æ´¢£¬ÈçÏÂͼ2Ëùʾ¡£

ͼ2 ¸ßÐÔÄܵķֲ¼Ê½Êý¾Ý¿â¼¯Èº¼Ü¹¹

MongoDB Sharding ClusterÐèÒªÈýÖÖ½ÇÉ«£º

£¨1£©Shard Server£º¼´´æ´¢Êµ¼ÊÊý¾ÝµÄ·ÖƬ£¬Ã¿¸öShard¿ÉÒÔÊÇÒ»¸ömongodʵÀý£¬Ò²¿ÉÒÔÊÇÒ»×émongodʵÀý¹¹³ÉµÄReplica Set¡£

£¨2£©Config Server£ºÓÃÀ´´æ´¢ËùÓÐshard½ÚµãµÄÅäÖÃÐÅÏ¢¡¢Ã¿¸öchunkµÄshard key·¶Î§¡¢chunkÔÚ¸÷shardµÄ·Ö²¼Çé¿ö¡¢¸Ã¼¯ÈºÖÐËùÓÐDBºÍcollectionµÄshardingÅäÖÃÐÅÏ¢¡£

£¨3£©Route Process£ºÕâÊÇÒ»¸öǰ¶Ë·ÓÉ£¬¿Í»§¶ËÓɴ˽ÓÈ룬ȻºóѯÎÊConfig ServersÐèÒªµ½ÄĸöshardÉϲéѯ»ò±£´æ¼Ç¼£¬ÔÙÁ¬½ÓÏàÓ¦µÄshard½øÐвÙ×÷£¬×îºó½«½á¹û·µ»Ø¸ø¿Í»§¶Ë£¬¶øÕâÒ»ÇжԿͻ§¶ËÊÇ͸Ã÷µÄ£¬¿Í»§¶Ë²»ÓùØÐÄËù²Ù×÷µÄ¼Ç¼´æ´¢ÔÚÄĸöshardÉÏ¡£

ΪÁ˲âÊÔ·½±ã£¬ÏÂÃæÔÚͬһ̨ÎïÀí»úÆ÷ÉϹ¹½¨Ò»¸ö¼òµ¥µÄSharding Cluster£¬ÈçÏÂͼ3Ëùʾ¡£

ͼ3 ¼òµ¥µÄSharding Cluster¼Ü¹¹Í¼

ÅäÖòâÊÔ»·¾³ÈçÏ£º

Ä£Äâ2¸öShard·þÎñÆ÷ºÍ1¸öConfig·þÎñÆ÷£¬¾ùÔËÐÐÔÚ±¾»ú127.0.0.1ÉÏ£¬Ö»ÊǶ˿ڲ»Í¬£º

£¨1£©Shard Server1£º127.0.0.1£º27020¡£

£¨2£©Shard Server2£º127.0.0.1£º27021¡£

£¨3£©Config Server£º127.0.0.1£º27022¡£

£¨4£©Route Process£º127.0.0.1£º27017¡£

Æô¶¯Ïà¹Ø·þÎñ½ø³Ì£º

c:\mongodb 2.0.0\bin>mongod --shardsvr --dbpath "c:\mongodb 2.0.0\db" --port 27020

d:\mongodb 2.0.0\bin>mongod --shardsvr --dbpath "d:\mongodb 2.0.0\db" --port 27021

e:\mongodb 2.0.0\bin>mongod --configsvr --dbpath "e:\mongodb 2.0.0\db" --port 27022

e:\mongodb 2.0.0\bin>mongos --configdb 127.0.0.1:27022

ÅäÖÃSharding£º

(1)e:\mongodb 2.0.0\bin>mongo

(2)use admin

(3)db.runCommand( { addshard : "127.0.0.1:27020", allowLocal : 1,

maxSize:2 , minKey:1, maxKey:10 } )

(4)db.runCommand( { addshard : "127.0.0.1:27021", allowLocal : 1, minKey:100 } )

(5)config =connect("127.0.0.1:27022")

(6)config = config.getSisterDB("config")

(7)ecDocs=db.getSisterDB("ecDocs")

(8)db.runCommand({enablesharding:"ecDocs"})

(9)db.runCommand( { shardcollection : "ecDocs.filedocs.chunks", key : { files_id : 1 } } )

(10)db.runCommand( { shardcollection : "ecDocs.filedocs.files", key : { _id : 1 } } )

ÒÔÉϵÄecDocsÊÇÖ¸Êý¾Ý¿âÃû£¬filedocsÊÇÖ¸Óû§×Ô¶¨ÒåµÄGridFSµÄÎļþ¼¯ºÏÃû£¬ÏµÍ³Ä¬ÈÏÎļþ¼¯ºÏÃûΪfs¡£

ʹÓùٷ½ÌṩµÄC#Çý¶¯,ÐèÒªÔÚ³ÌÐòÖÐÒýÓÃMongoDB.Driver.dllMongoDB.Bson.dll£¬Ñ­»·Ìí¼ÓͬһÎļþµ½GridFSʾÀý´úÂ룬ÈçÏÂͼ4Ëùʾ¡£

ͼ4 Ñ­»·Ìí¼ÓͬһÎļþµ½GridFS´úÂë

²âÊÔÅäÖû·¾³ÈçÏ£º

²Ù×÷ϵͳ£ºWindowsXPרҵ°æ32λSP3¡£

´¦ÀíÆ÷(CPU)£ºÓ¢ÌضûXeon(ÖÁÇ¿)W3503@2.40GHz¡£

Äڴ棺3567MB(DDR31333MHz/FLASH)¡£

Ó²ÅÌ£ºÏ£½ÝST3250318AS(250GB/7200ת/·Ö)¡£

ÓÉÓÚ±¾»úÊÇ32λ²Ù×÷ϵͳ£¬Òò´Ëµ¥¸ö·þÎñʵÀýÖ»Ö§³ÖGridFSµÄÎļþÈÝÁ¿´óСΪ0.9G×óÓÒ£¬ÓÉÓÚ²ÉÓÃÁËÁ½Ì¨Shard·þÎñʵÀý£¬¿ÉÒÔÖ§³Ö´æ´¢µÄÎļþ×ÜÈÝÁ¿´óСΪ1.8G×óÓÒ£¬Èç¹ûÊÇ64λ²Ù×÷ϵͳ¾ÍûÓдËÏÞÖÆ¡£

±¾ÎÄÖ÷Òª²âÊÔGridFS²ÉÓÃÑ­»·²åÈë´óÈÝÁ¿ÎļþµÄÐÔÄÜºÍ·ÖÆ¬ÈÝÁ¿´óС,²âÊÔ½á¹û£¬ÈçÏÂͼ5Ëùʾ¡£

´Óͼ5¿ÉÒÔ¿´³ö£¬µÚ1µ½3²½Ö裬ֻÌí¼Óµ¥¸öÎļþʱ£¬Shard2²¢Ã»ÓвúÉú·ÖƬÊý¾Ý£¬Ö»ÓвâÊÔµ½²½Öè4Á¬ÐøÌí¼Ó100¸öÏàͬÎļþʱShard2²Å²úÉú·ÖƬÊý¾Ý£¬²¢ÇÒÌí¼ÓÈýËİÙÕ׵ĵ¥¸öÎļþ£¬Ö»Ðè11Ãë¶à¾ÍÍê³ÉÁ˲Ù×÷£¬¶ø¼´Ê¹Í¨¹ýÎļþ¿½±´·½Ê½Õâô´óµÄÎļþÒ²ÖÁÉÙÐèÒª¶þÈýÊ®Ãë²ÅÄÜÍê³É£¬¿É¼ûMongoDBÔÚ´óÈÝÁ¿Îļþ´æ´¢·½ÃæÓµÓзdz£¸ßµÄÐÔÄÜ¡£

ͨ¹ýÔÚ¿Í»§¶ËµÄmongo¹¤¾ßÊäÈëdb.printShardingStatus()ÃüÁî¿ÉÒԲ鿴Ïêϸ·ÖƬÇé¿ö£¬ÈçÏÂͼ6Ëùʾ¡£

´Óͼ6¿ÉÒÔ¿´³ö£¬ÔÚshard1ÖзÖÅäÁË6¸öchunks£¬ÔÚshard2ÖзÖÅäÁË7¸öchunks£¬·ÖƬÊý¾ÝÏà¶Ô»¹ÊDZȽϾùÔȵġ£

´ÓÒÔÉϵIJâÊÔ¿ÉÒÔµÃÖª£¬²ÉÓÃGridFS¿ÉÒÔ´æ´¢º£Á¿Êý¾Ý£¬²¢ÇÒ¿ÉÒÔͨ¹ýÁ®¼Û·þÎñÆ÷½øÐдó¹æÄ£Êý¾Ý¿â¼¯Èº£¬·Ç³£ÈÝÒ×À©Õ¹²¿Ê𣬳ÌÐò±àÂëÒ²·Ç³£ÈÝÒ×£¬Òò´ËÄܹ»ÓÐЧ֧³ÖÔÆ´æ´¢µÄÓ¦Óã¬Äܹ»Âú×ã´ó¹æÄ£Êý¾Ý´æ´¢µÄÓ¦ÓÃÐèÇó¡£

ͼ5 GridFS´óÈÝÁ¿Îļþ²âÊÔ½á¹û

ͼ6 GridFS´óÈÝÁ¿Îļþ·ÖƬÐÅÏ¢

4 ½áÂÛ

Ëæ×ÅÆóÒµºÍ¸öÈËÊý¾ÝµÄ²»¶ÏÀ©´ó£¬Ëæ×ÅÔÆ¼ÆËãµÄ¸ßËÙ·¢Õ¹£¬Ô½À´Ô½¶àµÄÓ¦ÓÃÐèÒª´æ´¢º£Á¿Êý¾Ý£¬²¢ÇҶԸ߲¢·¢ºÍ´¦Àíº£Á¿Êý¾ÝÌá³öÁ˸ü¸ßµÄÒªÇ󣬴«Í³µÄ¹ØÏµÐÍÊý¾Ý¿â¶ÔÓÚÕâЩӦÓó¡¾°ÄÑÒÔÂú×ãÓ¦ÓÃÐèÇ󣬶ø×÷ΪNoSQLÊý¾Ý¿âÖ®Ò»µÄMongoDBÊý¾Ý¿âÄܹ»ÍêÈ«Âú×ãºÍ½â¾öÔÚº£Á¿Êý¾Ý´æ´¢·½ÃæµÄÓ¦Óã¬Ô½À´Ô½¶àµÄ´óÍøÕ¾ºÍÆóҵѡÔñMongoDB´úÌæMysql½øÐд洢¡£

   
4370 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí