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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
²»ÊÇMongoDB²»ÐУ¬¶øÊÇÄã²»¶®£¡
 
  À´Ô´: 21CTOÉçÇø   ·¢²¼ÓÚ 2015-12-16
  3627  次浏览      27
 

ÕªÒª£ºMongoDB×î½üÔÚHack NewsÉÏÊÇÆµ·±ÖÐǹ£¬¸÷ÖÖȱµã±»·×·×±»Ì§ÉÏ×ÀÃæ£»È»¶øËüµÄ¸ßÐÔÄÜ¡¢Òײ¿Êð¡¢Ò×ʹÓÃÕâЩÓŵãͬÑùÊDz»ÈݺöÊӵġ£ÓÚÊǾÍÓÐÁËRussell Smith ¡ª¡ª MongoDB Master£¬ÔÚһƬÐêÉùÖÐΪÎÒÃÇ´øÀ´MongoDB¡°Ú¸²¡¡±µÄÈ«Ãæ·ÖÎö£¬²¢Ò»Ò»Ìá³öÁ˽â¾ö·½°¸¡£

½üÆÚMongoDBÔÚHack NewsÉÏÊÇÆµ·±ÖÐǹ¡£Ðí¶àÈ˸üÊÇÉù³ÆºÞÉÏÁËMongoDB£¬David mytton¾ÍÔÚËûµÄ²©¿ÍÖнÒ¶ÁËMongoDBÐí¶àÏÖ´æÎÊÌ⡣Ȼ¶øºÞµÄÈËÓÐ֮ƫ°®µÄҲͬÑùºÜ¶à£¬×÷Ϊ»Ø»÷£ºRussell Smith´øÀ´Á˶àÄ깤×÷¾­ÑéµÄ×ܽᡣRussell SmithÔøµ£ÈÎOpsºÍ´óÐÍÍøÕ¾Ëõ·Å¹ËÎʲ¢ÇÒ°ïÖú¹ýGuardian¡¢ExperianµÈ¶à¼Ò¹«Ë¾£¬MongoDB London User GroupµÄÁªºÏ´´Ê¼ÈË¡£×÷ΪMongoDB Master£¨MongoDB¹Ù·½ÈϿɵÄMongoDBºËÐűÏ×Õß×éÖ¯£¬²¢Í¨¹ýÉçÇø·ÖÏí×Ô¼ºµÄרҵ¼¼Êõ£©£¬Æä²ÎÓ빤×÷µÄ»ù´¡ÉèÊ©µ¥·þÎñÆ÷ÿÃë²éѯ³¬¹ý3Íò´Î£¬Ã¿Ìì»îÔ¾Êý¾Ý¸üÔÚ1TBÒÔÉÏ¡£

ÏÂÃæÀ´¿´Russell¶ÔMongoDBһЩ³£¼û¼°ÉúƧµÄÎÊÌâ×ö³ö·ÖÎö£º

32λ vs 64λ

ÏÖÔÚ´ó¶àÊýµÄ·þÎñÆ÷¶¼¶Ô32λ²Ù×÷ϵͳʵÏÖÖ§³Ö£¬¸üÓÐÐí¶àÐÂÐÍÓ²¼þÖ§³Ö×ÅÔÊÐí¸ü¶àRAMµÄ64λ²Ù×÷ϵͳ¡£

MongoDBҲͬʱ·¢²¼ÁË32λ¼°64λÁ½¸ö°æ±¾µÄÊý¾Ý¿â¡£¹é½áÓÚMongoDBʹÓõÄÄÚ´æÓ³ÉäÎļþ£¬32λ°æ±¾Ö»Ö§³Ö2GÊý¾ÝµÄ´æ´¢¡£¶ÔÓÚ±ê×¼µÄReplica Set£¬MongoDBÖ»ÓµÓе¥Ò»µÄ´¦Àí²ßÂÔ ¡ª¡ª mongod¡£Èç¹ûÄãÏëÔÚδÀ´´¢´æ2GÒÔÉϵÄÊý¾Ý£¬ÇëʹÓÃ64λ°æ±¾µÄMongoDB¡£Èç¹ûÓµÓÐ·ÖÆ¬°²×°£¬ÄÇô32λ°æ±¾Í¬Ñù¿ÉÒÔʹÓá£

×ܽ᣺ʹÓÃ64λ°æ±¾»òÕßÀí½â32λ°æ±¾µÄÏÞÖÆ¡£

Îļþ´óСÏÞÖÆ

²»Í¬ÓÚRDBMS°ÑÊý¾Ý´¢´æÔÚÐÐÓëÁÐÖУ¬MongoDBµÄÊý¾ÝÊÇ´¢´æÔÚÎļþÖеġ£ÕâЩÎļþʹÓöþ½øÖÆ´æ´¢ÐÎʽ£¬Æä¸ñʽΪÀàËÆJSON¸ñʽµÄBSON¸ñʽ¡£

ºÍÆäËüµÄÊý¾Ý¿âÒ»Ñù£¬µ¥¸öÎļþµÄ´¢´æ´óСÊÇÓÐÏÞÖÆµÄ¡£Ôھɰ汾µÄMongoDBÖУ¬µ¥¸öÎļþ¶¼ÏÞÖÆÔÚ4MÒÔÄÚ¡£¶øÐ°汾µÄMongoDBµ¥ÎļþÒѾ­Ö§³Öµ½16M´óС¡£ÕâÑùµÄÏÞÖÆÒ²ÐíÊÇÁîÈËÑá·³µÄ£¬µ«ÊÇ10genµÄÒâ¼ûÊÇ£ºÈç¹ûÕâÏîÉèÖò»Í£µÄÀ§Èŵ½Ä㣬ÄÇôÊÇ·ñÄãµÄÉè¼ÆÄ£Ê½´æÔÚ×ÅÎÊÌ⣻»òÕßÄã¿ÉÒÔʹÓÃÎļþÎÞ´óСÏÞÖÆµÄGridFS¡£

ÕâÖÖÇé¿öͨ³£µÄ½¨ÒéÊDZÜÃâ´æ´¢¹ý´óµÄÎļþ£¬²»¶¨ÆÚµÄ¸üÐÂÊý¾Ý¿âÖд洢µÄ¸÷ÖÖ¶ÔÏó¡£¶øÏñAmazon S3»òÕßRackspace CloudfilesÕâÑùµÄ·þÎñͨ³£¿ÉÄÜ»áÊǸüºÃµÄÑ¡Ôñ£¬¶ø·Ç±ØÒªÇé¿öÏÂ×îºÃ±ðÈûù´¡ÉèÊ©ÏÝÈë¹ýÔØ¡£

×ܽ᣺°Ñÿ¸öÎļþ±£³ÖÔÚ16MÒÔÏ£¬ÄÇôһÇж¼ºÃ¡£

дÈëʧ°Ü

MongoDBÔÚĬÈϵÄÇé¿öÏÂÔÊÐí¸ßËÙµÄдÈëºÍ¸üУ¬¶ø¸¶³öµÄ´ú¼Û¾ÍÊÇûÓÐÃ÷È·µÄ´íÎó֪ͨ¡£Ä¬ÈÏÇé¿ö϶àÊýµÄÇý¶¯¶¼ÔÚ×öÒì²½¡¢¡°²»°²È«¡±Ð´Èë ¡ª¡ª Õâ¾ÍÒâζ×ÅÇý¶¯³ÌÐò²»ÄÜÁ¢¼´·´À¡´íÎóÐÅÏ¢£¬ÀàËÆÓÚMySQLµÄINSERT DELAYED¡£Èç¹ûÄãÏëÖªµÀij¸öÊÂÇéÊÇ·ñ³É¹¦£¬Äã±ØÐëʹÓÃgetLastErrorÊÖ¶¯µÄ¼ì²é´íÎóÐÅÏ¢¡£

ijЩÇé¿öÏÂÈç¹ûÄãÐèÒªÔÚ´íÎó·¢ÉúºóÁ¢¿ÌµÃµ½´íÎóÐÅÏ¢£¬¼´£º´ó¶àÊýµÄÇý¶¯Öж¼ºÜÈÝÒ×ʵÏÖͬ²½¡°°²È«¡±²éѯ¡£Õ⽫ıɱµôMongoDB²»Í¬ÓÚ´«Í³Êý¾Ý¿âµÄÓŵ㡣

Èç¹û¶Ô±È¡°ÍêÈ«°²È«¡±µÄͬ²½Ð´ÈëÄãÐèÒª¶àÒ»µãÐÔÄÜ£¬Í¬Ê±»¹ÏëÒªÒ»¶¨³Ì¶ÈµÄ°²È«£¬ÄÇôÄã¿ÉÒÔʹÓÃgetLastError with¡®j¡¯ÈÃMongoDBÖ»µ½Ò»·ÝÈÕÖ¾Ìá½»ºóÔÙ·¢³ö´íÎ󱨸æÍ¨Öª¡£ÄÇôÈÕÖ¾½«ÒÔ100ºÁÃëÒ»´ÎµÄËÙ¶ÈÊä³öµ½´ÅÅÌ£¬¶ø²»ÊÇ60Ãë¡£

×ܽ᣺Èç¹û±ØÐëҪдÈëÈ·ÈÏ£¬Äã¿ÉÒÔʹÓð²È«Ð´Èë»ògetLastError¡£

Êý¾Ý½á¹¹Ä£Ð͵ÄÈõ»¯²»µÈÓÚûÓÐÊý¾Ý½á¹¹Ä£ÐÍ

RDBMSÒ»°ã¶¼ÓµÓÐÒ»¸öÔ¤¶¨ÒåµÄÊý¾Ý½á¹¹Ä£ÐÍ£º±í¸ñµÄÐкÍÁУ¬Ã¿¸ö×ֶζ¼ÓµÓÐÃû³ÆºÍÊý¾ÝÀàÐÍ¡£Èç¹ûÄãÏë¸øÆäÖÐÒ»ÐмÓÒ»ÁУ¬ÄÇôÄã±ØÐë¸øÕû¸ö±í¸ñ¶¼Ìí¼ÓÒ»ÁС£

MongoDBÔòÊÇÒÆ³ýÁËÕâ¸öÉèÖ㬶ÔÓÚCollectionºÍÎļþûÓÐÇ¿ÖÆµÄÄ£ÐÍÏÞ¶¨¡£ÕâÓÐÒæÓÚ¿ìËÙ¿ª·¢¼°¼òÒ×Ð޸ġ£

µ±È»Õâ²»Òâζ×ÅÄã¾Í¿ÉÒÔÎÞÊӽṹģÐ͵ÄÉè¼Æ£¬Ò»¸öºÏÊʵĽṹģÐÍ¿ÉÒÔÈÃÄã»ñµÃMongoDBµÄ×î¼ÑÐÔÄÜ¡£¸Ï¿ìÔĶÁMongoDBÎĵµ£¬»òÕß¹Û¿´ÕâЩ½á¹¹Ä£ÐÍÉè¼ÆµÄÏà¹ØÊÓÆµ°É£¡

  • Schema Design Basics
  • Schema Design at Scale
  • Schema Design Principles and Practice

×ܽ᣺Éè¼Æ½á¹¹Ä£ÐͲ¢³ä·ÖÀûÓÃMongoDBµÄÌØÉ«¡£

ĬÈÏÇé¿öÏÂÐÞ¸ÄÓï¾äÐ޸ĵÄÖ»Êǵ¥¸öÎļþ

ÔÚ´«Í³µÄRDBMSÖгý·ÇʹÓÃLIMIT×Ӿ䣬ÐÞ¸ÄÓï¾ä×÷ÓõĽ«ÊÇËùÓÐÆ¥ÅäµÄµØ·½¡£È»¶øMongoDBÿ¸ö²éѯÉ϶¼Ä¬ÈÏʹÓõȼۡ°LIMIT 1¡±µÄÉèÖá£ËäÈ»ÎÞ·¨×öµ½¡°LIMIT 5¡±£¬µ«ÊÇÄã¿ÉÒÔͨ¹ýÏÂÃæµÄÓï¾äÕû¸öµÄÒÆ³ýÏÞÖÆ£º

db.people.update({age: {$gt: 30}}, {$set: {past_it: true}}, false, true)

ͬÑùÔÚ¹Ù·½µÄÇý¶¯Öл¹ÓÐÀàËÆµÄÑ¡Ïî ¡ª¡ª ¡®multi¡¯¡£

×ܽ᣺¿ÉÒÔͨ¹ýÖ¸¶¨¶à¸öÎļþµÄmultiΪtrueÀ´Íê³É¶àÎļþÐÞ¸Ä

²éÑ¯Çø·Ö´óСд

×Ö·û´®µÄ²éѯ¿ÉÄܲ»°´Ô¤ÆÚµÄÄÇÑù·¢Õ¹ ¡ª¡ª Õâ¹é½áÓÚMongoDBĬÈÏÇø·Ö´óСд¡£

ÀýÈ磺db.people.find£¨{name: ¡®Russell¡¯}£©Óëdb.people.find£¨{name: ¡® russell¡®}£©ÊDz»Í¬µÄ¡£ÔÚÕâÀï×îÀíÏëµÄ½â¾ö·½°¸¾ÍÊǶÔÐèÒª²éѯÊý¾Ý½øÐÐÈ·ÈÏ¡£ÄãÒ²¿ÉÒÔͨ¹ýÕýÔò±í´ïʽ½øÐвéѯ£¬±ÈÈ磺db.people.find£¨{name:/Russell/i}£©£¬µ«ÊÇÕâÑù»áÓ°Ïìµ½ÐÔÄÜ¡£

×ܽ᣺²éѯÊÇÇø·Ö´óСдµÄ£¬ÔÚÎþÉüËٶȵÄÇé¿öÏ¿ÉÒÔÀûÓÃÕýÔò±í´ïʽ¡£

¶ÔÊäÈëµÄÊý¾ÝÎÞÈÝ´íÐÔ

µ±Äã³¢ÊÔÏò´«Í³Êý¾Ý¿â²åÈë´íÎóÀàÐ͵ÄÊý¾Ý£¬´«Í³µÄÊý¾Ý¿âÒ»°ã»á°ÑÊý¾Ýת»»³ÉÔ¤¶¨ÒåµÄÀàÐÍ¡£È»¶øÕâÔÚMongoDBÖÐÊÇÐв»Í¨µÄ£¬ÒòΪMongoDBµÄÎļþÊÇûÓÐÔ¤¶¨ÒåÊý¾ÝÄ£Ð͵ġ£ÕâÑùµÄ»°MongoDB»á²åÈëÄãÊäÈëµÄÈκÎÊý¾Ý¡£

×ܽ᣺ʹÓÃ׼ȷµÄÊý¾ÝÀàÐÍ¡£

¹ØÓÚËø

µ±×ÊÔ´±»´úÂëµÄ¶à¸ö²¿·ÖËù¹²Ïíʱ£¬ÐèҪȷÐÅËø±ØÐëҪȷ±£Õâ´¦×ÊÔ´Ö»ÄÜÔÚÒ»¸öµØ·½±»²Ù×÷¡£

¾É°æ±¾µÄMongoDB £¨pre 2.0£©ÓµÓÐÒ»¸öÈ«¾ÖµÄдÈëËø¡£Õâ¾ÍÒâζ¹á´©Õû¸ö·þÎñÆ÷ÖÐÖ»ÓÐÒ»¸öµØ·½×öд²Ù×÷¡£Õâ¾Í¿ÉÄܵ¼ÖÂÊý¾Ý¿âÒòΪij¸öµØ·½Ëø¶¨³¬¸ºÔضøÍ£ÖÍ¡£Õâ¸öÎÊÌâÔÚ2.0°æ±¾Öеĵõ½ÁËÏÔÖøµÄ¸ÄÉÆ£¬²¢ÇÒÔÚµ±Ç°2.2°æ±¾Öеõ½Á˽øÒ»²½µÄ¼ÓÇ¿¡£MongoDB 2.2ʹÓÃÊý¾Ý¿â¼¶±ðµÄËøÔÚÕâ¸öÎÊÌâÉÏÂõ½øÁËÒ»´ó²½¡£Í¬ÑùÖµµÃÆÚ´ýµÄCollection¼¶±ðµÄËøÒ²¼Æ»®ÔÚÏÂÒ»¸ö°æ±¾ÖÐÍÆ³ö¡£

¾¡¹ÜÈç´Ë£¬Russell»¹ÊÇÈÏΪ£º´ó¶àÊýÊÜ´ËÏÞÖÆµÄÓ¦ÓóÌÐòÓÚÆä˵ÊÇÊÜMongoDBÓ°Ï죬»¹²»Èç˵ÊdzÌÐò±¾ÉíµÄÎÊÌâÀ´µÄ¸üÖ±½Ó¡£

×ܽ᣺ʹÓÃ×îеÄÎȶ¨°æ±¾²ÅÄÜ»ñµÃ×î¸ßµÄÐÔÄÜ¡£

¹ØÓÚ°ü

ÔÚÀàUbuntuºÍDebianϵͳÉϰ²×°Ê±£¬Ðí¶àÈ˶¼³öÏÖ¹ý¡°¹ýʱ°æ±¾¡±ÕâÑùµÄÎÊÌâ¡£½â¾ö·½°¸ºÜ¼òµ¥£ºÊ¹ÓÃ10gen¹Ù·½¿â£¬ÄÇôÔÚUbuntuºÍDebianÉϰ²×°Ò²»áÏñÔÚFedoraºÍCentosÉϰ²×°Ò»ÑùÁ÷³©¡£

×ܽ᣺ʹÓÃÓµÓдó¶àÊý×îа汾µÄ¹Ù·½°ü¡£

ʹÓÃżÊý¸öReplica Set³ÉÔ±

Replica SetÊÇÔö¼ÓÈßÓ༰ÌáÉýMongoDBÊý¾Ý¼¯ÈºÐÔÄܵÄÓÐЧ;¾¶¡£Êý¾ÝÔÚËùÓеĽڵãÖб»¸´ÖÆ£¬²¢Ñ¡³öÒ»¸ö×÷ΪÖ÷½Úµã¡£¼ÙÈçÖ÷½Úµã³ö¹ÊÕÏ£¬ÄÇô»áÔÚÆäËûµÄ½ÚµãÖÐÆ±Ñ¡Ò»¸ö×÷ΪеÄÖ÷½Úµã¡£

ÔÚͬһ¸öReplica SetÖÐʹÓÃÁ½Ì¨»úÆ÷ÊǺÜÓÐÓÕ»óµÄ£¬Ëü±È3̨»úÆ÷À´µÄ±ãÒ˲¢ÇÒÒ²ÊÇRDBMSµÄ±ê×¼ÐÐÊ·ç¸ñ¡£

µ«Êǵ½ÁËMongoDBÕâÀͬһ¸öReplica SetÖеijÉÔ±ÊýÁ¿Ö»ÄÜÊÇÆæÊý¸ö¡£¼ÙÈçÄãʹÓÃÁËżÊý¸ö³ÉÔ±£¬ÄÇôµ±Ö÷½Úµã·¢Éú¹ÊÕÏʱÄÇôÆäËüµÄ½Úµã¶¼»á±ä³ÉÖ»¶Á¡£·¢ÉúÕâÖÖÇé¿öÊÇÒòΪʣÏ´ýÑ¡½ÚµãµÄÊýÄ¿²»Âú×ãÆ±Ñ¡Ö÷½ÚµãµÄ¹æ¶¨¡£

Èç¹ûÄãÏë½ÚÔ¼³É±¾£¬Í¬Ê±»¹Ï£ÍûÖ§³Ö¹ÊÕÏ×ªÒÆºÍÈßÓàµÄÔöÇ¿£¬ÄÇôÄã¿ÉÒÔʹÓÃArbiter¡£ArbiterÊÇÒ»ÖÖÌØÊâµÄReplica Set³ÉÔ±£¬Ëü²»´¢´æÈκÎÓû§Êý¾Ý£¨Õâ¾ÍÒâζ×ÅËûÃÇ¿ÉÒÔʹÓ÷dz£Ð¡µÄ·þÎñÆ÷£©¡£

×ܽ᣺ֻ¿ÉÒÔʹÓÃżÊý¸öReplica Set³ÉÔ±£¬µ«ÊÇ¿ÉÒÔʹÓÃArbitterÀ´Ï÷¼õ³É±¾¡£

ûÓÐjoinÓï¾ä

MongoDB²»Ö§³Öjoin£ºÈç¹ûÄãÏëÔÚ¶à¸öCollectionÖмìË÷Êý¾Ý£¬ÄÇôÄã±ØÐë×ö¶à´ÎµÄ²éѯ¡£

Èç¹ûÄã¾õµÃÄãÊÖ¶¯×öµÄ²éѯ̫¶àÁË£¬Äã¿ÉÒÔÖØÉè¼ÆÄãµÄÊý¾ÝÄ£ÐÍÀ´¼õÉÙÕûÌå²éѯµÄÊýÁ¿¡£MongoDBÖеÄÎļþ¿ÉÒÔÊÇÈκÎÀàÐÍ£¬ÄÇô¿ÉÒÔÇáÒ׵ĶÔÊý¾Ý½øÐÐDe-Normalize¡£ÕâÑù¾Í¿ÉÒÔÈÃËüʼÖÕºÍÄãµÄÓ¦ÓóÌÐò±£³ÖÒ»Ö¡£

×ܽ᣺ûÓÐjoin²»·Á¿´Ò»ÏÂÈçºÎÉè¼ÆÊý¾Ý½á¹¹Ä£ÐÍ¡£

Journaling

MongoDBʹÓÃÄÚ´æÓ³ÉäÎļþ²¢ÇÒÿ60ÃëÏò´ÅÅÌÊä³öÒ»´Î֪ͨ£¬Õâ¾ÍÒâζ×Å×î´ó³Ì¶ÈÉÏÄã¿ÉÄܶªÊ§60Ãë¼ÓÉÏÏòÓ²ÅÌÊä³ö֪ͨÕâ¶Îʱ¼äÄÚËùÓеÄÊý¾Ý¡£

ΪÁ˱ÜÃâÊý¾Ý¶ªÊ§£¬MongoDB´Ó2.0°æ±¾Æð¾ÍÌí¼ÓÁËJournaling£¨Ä¬ÈÏÇé¿öÏ¿ªÆô£©¡£Journaling°Ñʱ¼ä´Ó60Ãë¸ü¸ÄΪ100ms¡£Èç¹ûÊý¾Ý¿âÒâÍâµÄÍ£»ú£¬ÔÚÆô¶¯Ö®Ç°Ëü½«»á±»ÖØÆôÓÃÒÔÈ·±£Êý¾Ý¿â´¦ÓÚÒ»ÖÂ״̬¡£ÕâÒ²ÊÇMongoDBÓ봫ͳÊý¾Ý¿â×î½Ó½üµÄµØ·½¡£

µ±È»Journaling»áÇá΢µÄÓ°Ïìµ½ÐÔÄÜ£¬´óÔ¼5%¡£µ«ÊǶÔÓÚ¶àÊýÈËÀ´Ëµ¶îÍâ´øÀ´µÄ°²È«ÐԿ϶¨ÊÇÎïÓÐËùÖµµÄ¡£

×ܽ᣺×îºÃ±ð¹Ø±ÕJournaling¡£

ĬÈÏÇé¿öÏÂûÓÐÉí·ÝÈÏÖ¤

MongoDBÔÚĬÈÏÉèÖÃϲ¢Ã»ÓÐÉí·ÝÑéÖ¤¡£MongoDB»áÈÏΪ×ÔÉí´¦ÔÚÒ»¸öÓµÓзÀ»ðǽµÄÐÅÈÎÍøÂç¡£µ«ÊÇÕâ²»´ú±íËü²»Ö§³ÖÉí·ÝÑéÖ¤£¬Èç¹ûÐèÒª¿ÉÒÔÇáËɵĿªÆô¡£

×ܽ᣺MongoDBµÄ°²È«ÐÔ¿ÉÒÔͨ¹ýʹÓ÷À»ðǽºÍ°ó¶¨ÕýÈ·µÄ½Ó¿ÚÀ´±£Ö¤£¬µ±È»Ò²¿ÉÒÔ¿ªÆôÉí·ÝÑéÖ¤¡£

Replica SetÖÐËðʧµÄÊý¾Ý

ʹÓÃReplica SetÊÇÌá¸ßϵͳ¿É¿¿ÐÔ¼°Ò×ά»¤µÄÓÐЧ;¾¶¡£ÕâÑùµÄ»°£¬ÅªÇå½Úµã¼ä¹ÊÕϵķ¢Éú¼°×ªÒÆ»úÖÆ¾Í±äµÃÖÁ¹ØÖØÒª¡£

Replica SetÖеijÉÔ±Ò»°ãͨ¹ýoplog£¨¼Ç¼ÁËÊý¾ÝÖз¢ÉúÔö¡¢É¾¡¢¸ÄµÈ²Ù×÷µÄÁÐ±í£©À´´«µÝÐÅÏ¢£¬µ±ÆäÖÐÒ»¸ö³ÉÔ±·¢Éú±ä»¯ÐÞ¸Äoplogºó£¬ÆäËûµÄ³ÉÔ±Ò²½«°´ÕÕoplogÀ´Ö´ÐС£Èç¹ûÄ㸺Ôð´¦ÀíÐÂÊý¾ÝµÄ½ÚµãÔÚ³ö´íºó»Ö¸´ÔËÐУ¬Ëü½«»á±»»Ø¹öÖÁ×îºóÒ»¸öoplog¹«¹²µã¡£È»¶øÔÚÕâ¸ö¹ý³ÌÖУº¶ªÊ§µÄ¡°ÐÂÊý¾Ý¡±ÒѾ­±»MongoDB´ÓÊý¾Ý¿âÖÐ×ªÒÆ²¢´æ·Åµ½ÄãµÄÊý¾ÝĿ¼¡®rollback¡¯ÀïÃæµÈ´ý±»ÊÖ¶¯»Ö¸´¡£Èç¹ûÄã²»ÖªµÀÕâ¸öÌØÐÔ£¬Äã¿ÉÄܾͻáÈÏΪÊý¾Ý±»Åª¶ªÁË¡£ËùÒÔÿµ±ÓгÉÔ±´Ó³ö´íÖлָ´¹ýÀ´¶¼±ØÐëÒª¼ì²éÕâ¸öĿ¼¡£¶øÍ¨¹ýMongoDB·¢²¼µÄ±ê×¼¹¤¾ßÀ´»Ö¸´ÕâЩÊý¾ÝÊǼþºÜÈÝÒ×µÄÊÂÇé¡£²é¿´¹Ù·½ÎĵµÒÔÁ˽â¸ü¶àÏà¹ØÐÅÏ¢¡£

×ܽ᣺¹ÊÕϻָ´ÖжªÊ§µÄÊý¾Ý½«»á³öÏÖÔÚrollbackĿ¼ÀïÃæ¡£

·ÖƬ̫³Ù

·ÖƬÊǰÑÊý¾Ý²ð·Öµ½¶ą̀»úÆ÷ÉÏ£¬Í¨³£±»ÓÃÓÚReplica SetÔËÐйýÂýʱ½øÐÐÐÔÄÜÌáÉý¡£MongoDBÖ§³Ö×Ô¶¯·ÖƬ¡£È»¶øÈç¹ûÄãÈÃ·ÖÆ¬½øÐÐÌ«³ÙµÄ»°£¬ÎÊÌâ¾Í²úÉúÁË¡£ÒòΪ¶ÔÊý¾ÝµÄ²ð·ÖºÍ¿éµÄÇ¨ÒÆÐèҪʱ¼äºÍ×ÊÔ´£¬ËùÒÔÈç¹ûµ±·þÎñÆ÷×ÊÔ´»ù±¾ÉϺľ¡Ê±ºÜ¿ÉÄܻᵼÖÂÔÚÄã×îÐèÒª·ÖƬʱȴ·Ö²»ÁËÆ¬¡£

½â¾öµÄ·½·¨ºÜ¼òµ¥£¬Ê¹ÓÃÒ»¸ö¹¤¾ß¶ÔMongoDB½øÐмàÊÓ¡£¶ÔÄãµÄ·þÎñÆ÷×ö×î׼ȷµÄÆÀ¹À£¬²¢ÇÒÔÚÕ¼ÕûÌåÐÔÄܵÄ80%ǰ½øÐÐ·ÖÆ¬¡£ÀàËÆµÄ¼àÊÓ¹¤¾ßÓУºMMS¡¢Munin£¨+Mongo Plugin£©ºÍCloudWatch¡£

Èç¹ûÄãÈ·¶¨´ÓÒ»¿ªÊ¼¾ÍÒª·ÖƬ´¦Àí£¬ÄÇô¸üºÃµÄ½¨Òé»áÊÇÑ¡ÓÃAWS»òÕßÀàËÆµÄÔÆ·þÎñ½øÐÐ·ÖÆ¬¡£¶øÔÚСÐÍ·þÎñÆ÷ÉÏ£¬¹Ø»ú»òÕßÊǵ÷Õû»úÆ÷Ã÷ÏÔ±È×ªÒÆ³ÉǧÉÏÍòÌõÊý¾Ý¿éÀ´µÄ¸üÖ±½ÓÒ»µã¡£

×ܽ᣺¾¡ÔçµÄ·ÖƬ²ÅÄÜÓÐЧµÄ±ÜÃâÎÊÌâ¡£

²»¿ÉÒÔ¸ü¸ÄÎļþÖеÄshard key

¶ÔÓÚ·ÖÆ¬ÉèÖã¬shard keyÊÇMongoDBÓÃÀ´Ê¶±ð·Ö¿é¶ÔÓ¦ÎļþµÄƾ֤¡£µ±Äã²åÈëÒ»¸öÎļþºó£¬Äã¾Í²»¿ÉÒÔ¶ÔÎļþµÄshard key½øÐиü¸Ä¡£¶øÕâÀïµÄ½â¾ö·½°¸ÊǰÑÎĵµÉ¾³ýÈ»ºóÖØÐ½¨Á¢£¬ÕâÑù¾ÍÔÊÐí°ÑËüÖ¸¶¨µ½¶ÔÓ¦µÄ·Ö¿éÁË¡£

×ܽ᣺shard key²»¿ÉÒÔÐ޸쬱ØÒªµÄʱºò¿ÉÒÔɾ³ýÎļþÖØÐ½¨Á¢¡£

²»¿ÉÒÔ¶Ô256GÒÔÉϵÄCollection½øÐÐ·ÖÆ¬

ÖØÐ»ص½·ÖƬ̫³ÙµÄÎÊÌâÉÏÀ´ ¡ª¡ª MongoDB²»ÔÊÐí¶ÔÔö³¤µ½256GÒÔÉϵÄCollection½øÐÐ·ÖÆ¬£¬Ö®Ç°°æ±¾µÄÉèÖû¹Ã»ÓÐ256G¡£Õâ¸öÏÞ¶¨ÔÚÒÔºó¿Ï¶¨»á±»ÒƳý£¬¶øÕâÀïҲûÓиüºÃµÄ½â¾ö·½°¸¡£Ö»ÄܽøÐÐÖØ±àÒë»òÕß°Ñ´óС¿ØÖÆÔÚ256GÒÔÏ¡£

×ܽ᣺ÔÚCollection´ïµ½256GÒÔǰ½øÐÐ·ÖÆ¬¡£

ΨһÐÔË÷ÒýÓë¹²Ïí

Ë÷ÒýµÄΨһÐÔÔ¼ÊøÖ»ÄÜͨ¹ýshard keyÀ´±£Ö¤¡£

Ñ¡ÔñÁË´íÎóµÄshard key

MongDBÐèÒªÄãÑ¡ÔñÒ»¸öshard keyÀ´½«Êý¾Ý·ÖƬ¡£Èç¹ûÑ¡ÔñÁË´íÎóµÄshard key,¸ü¸ÄÆðÀ´½«ÊǼþºÜÂé·³µÄÊÂÇé¡£

×ܽ᣺ѡÔñshard key֮ǰÏÈÔĶÁÕâ¸öÎĵµ¡£

ÓëMongoDBͨÐŵÄδ¾­¼ÓÃÜ

ÓëMongoDBµÄÁ¬½ÓĬÈÏÇé¿ö϶¼ÊǷǼÓÃܵģ¬Õâ¾ÍÒâζÄãµÄÊý¾Ý¿ÉÄܱ»µÚÈý·½¼Ç¼ºÍʹÓá£Èç¹ûÄãµÄMongoDBÊÇÔÚ×Ô¼ºµÄ·Ç¹ãÓòÍøÏÂʹÓã¬ÄÇôÕâÖÖÇé¿öÊDz»¿ÉÄÜ·¢ÉúµÄ¡£

È»¶øÈç¹ûÄãÊÇͨ¹ý¹«Íø·ÃÎÊMongoDBµÄ»°£¬ÄÇôÄã¿Ï¶¨»áÏ£ÍûÄãµÄͨÐÅÊǾ­¹ý¼ÓÃܵġ£¹«°æµÄMongoDBÊDz»Ö§³ÖSSLµÄ¡£ÇìÐÒµÄÊÇ¿ÉÒԷdz£¼òµ¥µÄ¶¨ÖÆ×Ô¼ºµÄ°æ±¾¡£10genµÄÓû§ÔòÓµÓÐÌØ±ð¶¨ÖƵļÓÃܰ汾¡£ÐÒÔ˵ÄÊǴ󲿷ֵĹٷ½Çý¶¯¶¼Ö§³ÖSSL£¬µ«ÊÇСÂ鷳ͬÑùÊDz»¿É±ÜÃâµÄ¡£µã»÷²é¿´Îĵµ¡£

×ܽ᣺µ±Óù«ÍøÁ¬½Óʱ£¬Òª×¢ÒâºÍMongoDBµÄͨÐÅÊÇδ¼ÓÃܵġ£

ÊÂÎñ

²»ÏñMySQLÕâЩ֧³Ö¶àÐÐÊý¾ÝÔ­×Ó²Ù×÷µÄ´«Í³Êý¾Ý¿â£¬MongoDBÖ»Ö§³Öµ¥ÎļþµÄÔ­×ÓÐÔÐ޸ġ£½â¾öÕâ¸öÎÊÌâµÄ·½·¨Ö®Ò»ÊÇÔÚÓ¦ÓóÌÐòÖÐʹÓÃÒì²½Ìá½»µÄ·½Ê½£»ÁíÒ»¸öÊÇ£º½¨Á¢Ò»¸öÒÔÉϵÄÊý¾Ý´æ´¢¡£ËäÈ»µÚÒ»ÖÖ·½·¨²¢²»ÊÊÓÃÓÚËùÓÐÇé¿ö£¬µ«ÊǺÜÏÔÈ»±ÈµÚ¶þ¸öÀ´µÄÒªºÃ¡£

×ܽ᣺²»Ö§³Ö¶Ô¶àÎļþÊÂÎñ¡£

ÈÕÖ¾Ô¤·ÖÅäÂý

MongDB¿ÉÄÜ»á¸æËßÄãÒѾ­×¼±¸¾ÍÐ÷£¬µ«ÊÂʵÉÏËü»¹ÔÚ¶ÔÈÕÖ¾½øÐзÖÅä¡£Èç¹ûÄãÑ¡ÔñÁËÈûúÆ÷×ÔÐзÖÅ䣬¶øÇ¡ÇÉÄãµÄÎļþϵͳºÍ´ÅÅÌËÙ¶ÈÓÖºÜÂý£¬ÄÇô·³ÄÕµÄÊÂÇé·¢ÉúÁË¡£Í¨³£Çé¿öÏÂÕâ²»»á³ÉΪÎÊÌ⣬µ«ÊÇÒ»µ©³öÏÖÁË¿ÉÒÔʹÓÃundocumented flag ¨CnopreallocjÀ´¹Ø±ÕÔ¤·ÖÅä¡£

×ܽ᣺Èç¹û»úÆ÷ÎļþϵͳºÍ´ÅÅ̹ýÂýµÄ»°£¬ÄÇôÈÕÖ¾µÄÔ¤·ÖÅäÒ²¿ÉÄܺÜÂý¡£

NUMA + Linux +MongoDB

Linux¡¢NUMAÓëMongoDBÓöµ½Ò»ÆðµÄʱºòÔËÐÐ×ÜÊDz»»áºÜºÃ¡£Èç¹ûÄãÔÚNUMAÓ²¼þÉÏÔËÐÐMongoDBµÄ»°£¬ÕâÀィÒéÊÇÖ±½Ó¹Øµô¡£ÒòΪ¸÷ÖÖÆæ¹ÖµÄÎÊÌâËæÖ®¶øÀ´£¬±ÈÈ磺ËÙ¶È»á½×¶ÎÐÔ»òÕßÔÚCPUÕ¼ÓÃÂʺܸߵÄʱºò´ó·ùϽµ¡£

×ܽ᣺½ûNUMA¡£

LinuxÀïÃæµÄ½ø³ÌÏÞÖÆ

Èç¹ûÄãÔÚMongoDBδÂúÔØµÄʱºò³ö¹ýSEGMENTATION FAULT´íÎó£¬Äã¿ÉÄܻᷢÏÖÕâÊÇÒòΪʹÓÃÁ˹ýµÍ»òÕßĬÈϵĴò¿ªÎļþ»òÓû§½ø³ÌÏÞÖÆ¡£10gen½¨Òé°ÑÏÞÖÆÉèÖÃÔÚ4K+£¬È»¶øÉèÖõĴóС¸ÃÈ¡¾ö¾ßÌåÇé¿ö¡£ÔĶÁulimitÁ˽â¸ü¶à¡£

×ܽ᣺³¤¾ÃµÄΪMongoDBÔÚLinux¼ÓÉÏÈí»òÓ²µÄ´ò¿ªÎļþ»òÓû§½ø³ÌÏÞÖÆ¡£

 

 

   
3627 ´Îä¯ÀÀ       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)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí