±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn,ÎÄÕ´ó¸Å·ÖΪ°Ë²¿·Ö½éÉÜ£¬×îºóÔËÓó¡¾°ÐðÊö¡£ |
|
1¡¢Collection ShardingÊÇ·ñ¿¿Æ×
Sharding keyµÄһЩ·³ÄÕ£»
µ¥Ò»key¿ÉÄܵ¼Ö·ֲ¼²»¾ùÔÈ£»
ʹÓ÷ûºÏSharding KEY
¸´ºÏsharding keyÒ²²»ÊÇÍòÄܵģ»
Count¼ÆËãÐÔ²»×¼È·£»
Balancer²»¹»ÖÇÄÜ£¬Ê±¼ä²»È·¶¨£»
½ûÓÃAuto-Sharding¹¦Äܲ»¿É¿¿£¨ÓÈÆäÊÇ2.X°æ±¾£©£»
ÏßÉϽûÓÃAuto-Sharding
¿ªÆô¿â¼¶Sharding£»
¹Ì¶¨·ÖƬ£»
ÊÖ¶¯·ÖƬ¡¢·Ö±í£»
ÍêÈ«¿ØÖƲ¢È¡µÃ½ÏºÃ½á¹û£»
2¡¢Free SchemaÕæµÄFreeÂð£¿ÈçºÎÓ¦¶Ô
Free SchemaÒâζ×ÅÖØ¸´µÄSchema£»
ÿ¸öÎĵµ¶¼ÐèÒªÓÐSchema£¨Öظ´´æ´¢µÄ´ú¼Û£©£»
Free SchemaÒâζ×ÅALL Schema£¬ÐèÒªÖªµÀËùÓÐschema²¢ÇÒ½øÐвéѯÓë½âÎö£»
¾¡Á¿±íÖÐSchema¶¼Êǹ̶¨µÄ£¬½«»á´ó´ó¼ò»¯³ÌÐò¸´ÔÓ¶È£»
¾¡¿ÉÄܼõÉÙ×Ö¶ÎÃû£¬Êý¾Ý´æ´¢Ñ¹Ëõ£¨×Ö¶ÎÃû³Æ¶¼Ò»Ñù¡¢Ñ¹Ëõ±È¸ß¡¢zlib type compression¡¢¼õÉÙ´æ´¢¿Õ¼ä¡¢¼õÉÙ·ÃÎÊѹÁ¦£©£»
3¡¢×Ö¶ÎÃûÈçºÎ½øÐÐѡȡ
FreeSchemaÒâζ×ÅÖØ¸´´æ´¢£¬´æ´¢¿Õ¼äÀË·Ñ£»
×Ö¶ÎÃû¾¡Á¿¶ÌµØ´æ´¢£»
1.6billion£¨243-183=60GB£©£»
¼õÉÙ×Ö¶ÎÃû½«»á´øÀ´¿É¶ÁÐÔµÄÎÊÌ⣬ӦÓòã×ö×ֶεÄÓ³É䣻
4¡¢_idÈçºÎ½øÐÐÉú³É
collection¼¶docΨһ±êʾ£¬¼¯ºÏÄÚ²¿Î¨Ò»£»
ÎĵµÖ÷¼ü£¬Ä¬ÈÏΪ12×Ö½Ú£¬24λµÄ×Ö·û´®£¬_idÔÚ·þÎñÆ÷¶ËÉú³É£»
ÔÚ¿Í»§¶ËÉú³ÉºÏÊʵÄ_id£¬ÀýÈçIMÓû§¿ÉÒÔʹÓÃunit64_t×÷Ϊid£»
ÔÚÒµÎñ²ãͳһÉú³É£¨_idÉú³ÉÆ÷£¬twitter snowflake±£Ö¤Éú³ÉΨһÐÔ£©£»
5¡¢Ë÷ÒýÈçºÎÉè¼Æ
ÔÀí£ºÄÚ´æ´¦ÀíËٶȱÈÓ²ÅÌ¿ì100±¶£¬¼Ó¿ìË÷ÒýËÙ¶È£»
Ë÷ÒýÀàÐÍ£ºÎ¨Ò»ÐÔË÷Òý£¨Ë÷ÒýÏîµÄΨһ£©£¬ÁªºÏË÷Òý£¨Ö§³Öǰ׺²éѯ£©£»
·µ»ØÄ³Ð©×ֶΣ¬½«ÕâЩ×ֶζ¼·ÅÔÚË÷ÒýÖУ»ÁªºÏ²éѯ£¬Ö§³Öǰ׺²éѯ£¨Ç°ÃæµÄ½Úµã¿ÉÒÔÀûÓÃË÷Òý£©£»·µ»Ø95%µÄ¼¯ºÏÎĵµ£¬Ð¡Êý¾ÝÁ¿Ë÷Òý½¨ÒéʹÓÃË÷Òý£»ºǫ́Ë÷Òý£¬background:true£¬²»ÔÊÐíÔÝÍ£Êý¾Ý¿â·ÃÎÊ£¬¿ÉÒÔÔÚºǫ́¹¹½¨Ë÷Òý£¬ÈÔȻռÓÃÐ´Ëø£¬µ«ÊÇ»áÊͷŸøÒµÎñ¶Áд²Ù×÷£»MongoDB¶ÔÍâ¶ÁдÐÔÄÜ»áϽµ£»
Ë÷Òý¸±×÷Óã¬Ôö¡¢É¾¡¢¸ÄµÄ¿ªÏú£»
Ë÷ÒýÊÇ·ñºÏÀí£¬explain+hintÃüÁ
6¡¢¿Õ¼äµØÀíË÷ÒýÊÇ·ñ¿¿Æ×
¿Õ¼äµØÀíË÷ÒýÐËÆð£»
ʹÓÃgps½øÐвéѯ
µØÀí¿Õ¼äË÷Òý²»Ì«¿¿Æ×£¨¿ÉÒÔͨ¹ýËÑË÷ÒµÎñ¸ã¶¨£©
7¡¢CollectionÉè¼ÆÔÔò
RDBMSÓëMongoDBµÄ¶ÔÕÕ
Êý¾Ý¿â¡¢±í/¼¯ºÏ¡¢ÐÐ/Îĵµ£»
Èý·¶Ê½ÓëǶÌ×£»
´æ´¢Óû§¼°µØÖ·£»
Ò»¶ÔÒ»ÔÔò£¨Óû§ÐÅÏ¢±í£¬ÀàRDBMSÀàÐÍ£©£»
Ò»¶Ô¶àÔÔò£¨ÔÚÏßÏûÏ¢±í£¬1£ºÀàRDBMSÀàÐÍ£»2£ºMongoDBǶÌ×·½Ê½£¨µ¥Ìõ16MBÏÞÖÆ£©£©£»
¶à¶Ô¶àÔÔò£¨UserÓëTeam¹ØÏµ£¬ÀàRDBMS£¨Team¡¢User¡¢Relation£©£¬MongoDB£¨User´æ´¢teamid£¨²»°üº¬Ê±£¬¿ÉÒÔÔÚTeamÖн¨Á¢Ë÷Òý£©£¬Team´æ´¢userid£¨²»°üº¬Ê±£¬¿ÉÔÚuidÉÏ´´½¨Ë÷Òý£©£©£©£»
8¡¢Êý¾ÝÁ¿½Ï´óʱÈçºÎ½øÐÐSharding
Collection Sharding£»
ÊÖ¶¯Sharding£»
»ìºÏID²éѯ£¨ÉÌÆ·±í£¬ÔÚ²»Í¬²éѯÌõ¼þʱ½«Ò»Ð©id´òÈëÁíÍâһЩidÖУ©£»
³¡¾°·ÖÎö£ºÉè¼ÆQQ¼´Ê±Í¨ÐÅÒµÎñ
Óû§ÐÅÏ¢±í£¨userinfo)Öд洢ÁËÓû§id¡¢Óû§Ãû×Ö¡¢Óû§êdzơ¢Óû§Ç©Ãû¡¢Óû§ÐÅÏ¢±íÉú³Éʱ¼ä´ÁÐÅÏ¢£¬Óû§ÐÅÏ¢±íÔ¼ÓÐ1ÒÚÌõ¼Ç¼¡£
ÔÚÏßÏûÏ¢±í´æ´¢Óû§Ö®¼äµÄÁÄÌìÏûÏ¢£¬°üÀ¨·¢ËÍÈË¡¢½ÓÊÕÈË¡¢ÏûϢʱ¼ä¡¢ÏûÏ¢ÄÚÈݵȡ£Ã¿ÌìÏûÏ¢Á¿Ô¼200wÌõ£¬ÏûÏ¢ÐèÒª±£´æ6¸öÔ¡£
Ⱥ×é±í´æ´¢ÁËÓû§¼ÓÈëȺµÄ¹ØÏµ¡£Ò»¸öȺ¿ÉÒÔÓкܶàȺ³ÉÔ±£¬Ò»¸öÓû§Ò²¿ÉÒÔ¼ÓÈëºÜ¶à¸öȺ¡£ÈºµÄ¹æÄ£Ô¼100w¸ö£¬Ò»¸öȺµÄ×î¶à¿ÉÒÔ¼ÓÈë100¸öÓû§£¬Ò»¸öÓû§×î´ó¼ÓÈë100¸öȺ¡£
Ê×ÏÈ£¬¶ÔÕû¸öÒµÎñ³¡¾°½øÐзÖÎö£¬´Ó¼´Ê±Í¨ÐŵÄÒªÇóÎÒÃÇ¿ÉÒÔ¿´³ö£¬Ö÷ÒªµÄÒµÎñ¼¯ÖÐÓÚÊÕ·¢ÏûÏ¢£¬´ÓÊÕ·¢ÏûÏ¢µÄÀà±ðÓÖ¿ÉÒÔ·ÖΪȺÏûÏ¢Óë¸öÈËÏûÏ¢£»
Ö®ºó£¬ÔÚÈ·¶¨»ù±¾ÒµÎñÖ®ºó¶ÔÊý¾Ý½øÐдó¸Å¹ÀË㣬Óû§ÐÅÏ¢1ÒÚÌõ£¬´ó¸ÅÐèÒª1ÒÚ*1k£¨Ã¿Ìõ¼Ç¼1k£©£¬Ô¼100GB´æ´¢¿Õ¼ä£»Óû§ÏûÏ¢200w*60*30*1k£¨Ã¿Ìõ¼Ç¼1k£©£¬Ô¼360GB´æ´¢¿Õ¼ä£»Èº×é±í£¬100w*10k£¨Óû§¼°Èº×éÏà¹ØÐÅÏ¢10k£©£¬Ô¼10GB´æ´¢¿Õ¼ä£»
½ÓÏÂÀ´£¬¶ÔÒµÎñ½øÐзÖÎö£¬´ÓÂß¼ÉÏÀ´¿´£¬Óû§µÄÐÅÏ¢ÔÚ·ÃÎÊÉÏÓ¦¸ÃÊÇÏ໥¶ÀÁ¢µÄ£¬ËùÒÔÓû§ÐÅÏ¢µÄ´æ´¢±£Ö¤½ÏÎªËæ»úµÄ´æ´¢¼´¿É£¬Í¬Ê±£¬ÓÖ²»»á³öÏÖ˳Ðò·ÃÎʵÄÇé¿ö£¬ËùÒÔÓû§ÐÅϢͨ¹ý¼òµ¥µÄhash½øÐÐ·ÖÆ¬¼´¿É£»ÁíÍ⣬Óû§µÄȺ×éÐÅÏ¢£¬ÓëÓû§Ò»Ñù£¬ÔÚ·Ö²¼¼°´æ´¢ÉÏÊǽÏΪ¶ÀÁ¢µÄ£¬ËùÒÔ¿ÉÒÔ·ÃÎÊʱ¿ÉÒÔ±£³ÖÏàÓ¦µÄ¶ÀÁ¢ÐÔ¼´¿É£»ÔÚʵʱÏûÏ¢·½ÃæÊµÊ±ÏûÏ¢ÆäʵÊÇÒ»¸öÓû§»Ø»°µÄ¹ý³Ì£¬ÔÚ´æ´¢·½ÃæÐèÒª½øÐÐÒ»¶¨µÄ¼ÆË㣬ͬʱ»áÓÐÒ»¶¨µÄʱЧÐÔÐèÒª°´Ê±¼ä½øÐÐÅÅÐò£¬ËùÒÔ´ËʱµÄÏûÏ¢×îºÃÊDzÉÓø´ºÏµÄƬ¼ü£¬²¢ÇÒ¼ÓÈëʱ¼ä£»
×îºó£¬ÔÚÊý¾Ý½á¹¹Éè¼Æ·½Ã棬Óû§ºÍȺ×éÖ®¼äÊǶà¶Ô¶àµÄ¹ØÏµ£¬ËùÒÔÐèÒªÔڽṹ·½Ãæ°üº¬Óû§µÄÐÅÏ¢£¬Í¬Ê±Óû§Ò²ÐèÒª°üº¬Èº×éµÄÐÅÏ¢£¬´ËʱÔÚÊý¾Ý½á¹¹ÉϽ«»áÓÐÒ»¶¨Á¿µÄÔö¼Ó£¬Ö÷ÒªÊÇÓû§±íÐèÒª°üº¬Èº×éµÄid£¬Õâ·½ÃæÔö¼ÓÊý¾ÝÁ¿´óÔ¼²»³¬¹ý5GËùÒÔ¿ÉÒÔºöÂÔ¡£´ËʱÊý¾Ý½á¹¹µÄÉè¼ÆÎªÓû§°üº¬Èº×éid¡¢Èº×é°üº¬Óû§id¡£ÏûÏ¢»¹Êǰ´ÕÕ֮ǰµÄÏûÏ¢½øÐд洢£¬Ê¹ÓýÓÊÕÕß¡¢·¢ËÍÕß¹¹½¨ÁªºÏµÄsharding
key£¬Í¬Ê±£¬¶ÔÏûÏ¢½øÐнÓÊÕÕß¡¢·¢ËÍÕß¡¢Ê±¼ä¹¹½¨ÁªºÏË÷Òý£¨ÒòΪÔÚÏûÏ¢·ÃÎÊʱһ°ã¶¼»áÊÇÈ·¶¨½ÓÊÕÕßÓë·¢ËÍÕߵģ©£¬´ËʱȺ×éÏûÏ¢µÄ½ÓÊÕÕß½«ÊÇȺ×飬Èç¹ûÓû§¿ÉÒÔͨ¹ý²éѯȺ×éÐÅÏ¢²é¿´ÏûÏ¢£»
|