|
1.1 MongoDBµÄ¼òµ¥½éÉÜ
ÔÚµ±½ñµÄÊý¾Ý¿âÊг¡ÉÏ£¬MySQLÎÞÒÉÊÇÕ¼ÓÐһϯ֮µØµÄ¡£×÷Ϊһ¸ö¿ªÔ´µÄ¹ØÏµÐÍÊý¾Ý¿â£¬MySQL±»´óÁ¿Ó¦ÓÃÔÚ¸÷´óÍøÕ¾ºǫ́ÖУ¬³Ðµ£×ÅÐÅÏ¢´æ´¢µÄÖØÒª×÷Óá£2009Ä꣬¼×¹ÇÎĹ«Ë¾£¨Oracle£©ÊÕ¹ºSun¹«Ë¾£¬MySQL³ÉΪOracleÆìϲúÆ·¡£
¶øMongoDBÊÇÒ»ÖÖÎļþµ¼ÏòµÄÊý¾Ý¿â¹ÜÀíϵͳ£¬ÊôÓÚÒ»ÖÖͨ³ÆÎªNoSQLµÄÊý¾Ý¿â£¬ÊÇ10gen¹«Ë¾ÆìϵĿªÔ´²úÆ·£¬ÆäÄÚ²¿Êý¾Ý´æ´¢µÄ·½Ê½Ó봫ͳµÄ¹ØÏµÐÍÊý¾ÝÓкܴó²î±ð¡£
NoSQLµÄÈ«³ÆÊÇNot Only SQL£¬Ò²¿ÉÒÔÀí½â·Ç¹ØÏµÐ͵ÄÊý¾Ý¿â£¬ÊÇÒ»ÖÖÐÂÐ͵ĸïÃüʽµÄÊý¾Ý¿âÉè¼Æ·½Ê½£¬²»¹ýËü²»ÊÇΪÁËÈ¡´ú´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿â¶ø±»Éè¼ÆµÄ£¬ËüÃÇ·Ö±ð´ú±íÁ˲»Í¬µÄÊý¾Ý¿âÉè¼ÆË¼Â·¡£
ËäÈ»MongoDB±³ºóµÄ¹«Ë¾Ã»ÓÐOracleÇ¿´ó£¬µ«ÆäĿǰҲÕýÔÚ±»Ó¦ÓÃÔÚ¸÷Ðи÷ÒµÖС£MongoDBÊÇĿǰ±»Ó¦ÓÃ×î¹ã·ºµÄNoSQLÊý¾Ý¿â²úÆ·¡£
1.2 MongoDBµÄ´æ´¢Ìصã
ÔÚ´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿âÖУ¬Êý¾ÝÊÇÒÔ±íµ¥ÎªÃ½½é½øÐд洢µÄ£¬Ã¿¸ö±íµ¥¾ùÓµÓÐ×ÝÏòµÄÁкͺáÏòµÄÐС£ÒÔMySQLΪÀý£¬Èç¹ûÓû§ÏëÒÔѧÉúµÄѧºÅΪË÷Òý£¬´æÈëÆäÐÕÃûÓëסַÐÅϢʱ£¬Êý¾Ý¿âÖдæ·ÅµÄÐÅÏ¢±ãÈçÏÂͼËùʾ£º

ÉÏͼ±íÃ÷Êý¾Ý¿âÖдæÈëÁË5¸ö±íÏÆä¼Ç¼ÁËѧºÅΪ10001 ¨C 10005µÄѧÉúµÄÐÕÃûÓëסַÐÅÏ¢¡£
Èç¹ûÓû§Óû°ÑÏàÓ¦µÄÐÅÏ¢ÖØÐ´æÈëMongoDBÊý¾Ý¿â£¬ÄÇôÊý¾Ý¿âÖеÄÐÅÏ¢Ó¦¸ÃΪÈçÏÂËùʾ£º
"_id" : "10001",
"Name" : "Alice",
"Address" : "A1",
"_id" : "10002",
"Name" : "Bob",
"Address" : "A2",
"_id" : "10003",
"Name" : " Cara",
"Address" : "A3",
"_id" : "10004",
"Name" : " David",
"Address" : "A4",
"_id" : "10005",
"Name" : " Eve",
"Address" : "A5", |
Óɴ˿ɼû£¬Ïà±È½ÏMySQL£¬MongoDBÒÔÒ»ÖÖÖ±¹ÛÎĵµµÄ·½Ê½À´Íê³ÉÊý¾ÝµÄ´æ´¢¡£ËüºÜÏñJavaScriptÖж¨ÒåµÄJSON¸ñʽ£¬²»¹ýÊý¾ÝÔÚ´æ´¢µÄʱºòMongoDBÊý¾Ý¿âΪÎĵµÔö¼ÓÁËÐòÁл¯µÄ²Ù×÷£¬×îÖÕ´æ½ø´ÅÅÌµÄÆäʵÊÇÒ»ÖÖ½Ð×öBSONµÄ¸ñʽ£¬¼´Binary-JSON¡£
¶Ô±ÈÁ½¸öÊý¾Ý¿âÖÐÊý¾Ý´æ´¢µÄ²îÒ죬Äã¿ÉÄÜûÓÐÊ²Ã´ÌØ±ðµÄÖ±¹Û¸ÐÊÜ¡£ÈÃÎÒÃÇÔÙ¿´¿´MongoDB´æ·ÅµÄÁíÒ»×éÊý¾Ý£º
"_id" : "10001",
"score" : {
"Maths" : 71,
"English" : 62,
}
"_id" : "10002",
"score" : {
"Maths" : 81,
"Chemistry" : 74,
"Sport" : {
"Basketball" : 67,
"Badminton" : 76,
},
} |
ÉÏÊöÊý¾Ý±íÃ÷ÁËѧºÅΪ10001Óë10002Á½ÃûѧÉúµÄ¿Î³Ì·ÖÊýÐÅÏ¢¡£Èç¹ûÏë°ÑͬÑùµÄÊý¾Ý´æÈëMySQLÊý¾ÝÖеϰ£¬ÊƱØÒªºÜ·ÑÒ»·¬¹¦·ò¡£ÔÚ¹ØÏµÐÍÊý¾Ý¿âÖУ¬ÁеÄÊýĿһ°ãÊÂÏȹ̶¨£¬¸÷ÁÐÖ®¼ä¿ÉÒÔÓÉÁÐÃûÀ´Ê¶±ð¡£Èç¹ûÏë´æÈëÒÔÉÏÊý¾Ý£¬ÎÒÃÇ¿ÉÒÔ²ÉÈ¡ÈçÏ·½·¨£º

»òÕßÈçÏÂÕâÖÖ£º

ÉÏÊöÁ½ÖÖ´æ´¢·½Ê½ÎÞÂÛÑ¡ÄÄÒ»ÖÖ£¬¶¼²»ÄܺÜÖ±¹ÛµØ³ÊÏÖÁ½ÃûѧÉúµÄ¸÷¿Æ³É¼¨Óë¸÷ѧ¿ÆÖ®¼äÁ¥Êô¹ØÏµ£¬ÔÚ´æ´¢¿Õ¼äÉϵÄÀûÓÃÒ²²»¾¡ÈçÒ⣬²¢ÇÒ¿ÉÀ©Õ¹ÐÔÒ²²»¹»ºÃ¡£µ±È»£¬ÎªÁ˽â¾öÕâЩÎÊÌ⣬ÎÒÃÇ»¹¿ÉÒÔʹÓöàÕÅ±íµ¥À´´æ´¢Ñ§ÉúµÄ³É¼¨£¬µ«ÕâÑùÒ²»áʹÊý¾Ý¿âÖеÄÄÚÈݸü¼Ó¸´ÔÓ¡£
1.3 MongoDBµÄÓ¦Óó¡¾°
ÔÚÁíÒ»·½Ã棬¶Ô¿ª·¢ÕßÀ´Ëµ£¬Èç¹ûÊÇÒòΪҵÎñÐèÇó»òÕßÊÇÏîÄ¿³õʼ½×¶Î£¬¶øµ¼ÖÂÊý¾ÝµÄ¾ßÌå¸ñʽÎÞ·¨Ã÷È·¶¨ÒåµÄ»°£¬MongoDBµÄÕâÒ»ÏÊÃ÷ÌØÐÔ¾ÍÍÑÓ±¶ø³öÁË¡£Ïà±È´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿â£¬Ëü·Ç³£ÈÝÒ×±»À©Õ¹£¬ÕâҲΪд´úÂë´øÀ´Á˼«´óµÄ·½±ã¡£
²»¹ýMongoDB¶ÔÊý¾ÝÖ®¼äÊÂÎñ¹ØÏµÖ§³Ö±È½ÏÈõ£¬Èç¹ûÒµÎñÕâÒ»·½ÃæÒªÇó±È½Ï¸ßµÄ»°£¬MongoDB»¹ÊDz¢²»ÊʺϴËÀàÐ͵ÄÓ¦Óá£
ÁíÍ⣬MongoDB³öÏÖµÄʱ»ú±È½ÏÍí£¬»¹¾ß±¸Ò»Ð©·Ç³£ÏÊÃ÷µÄÌØÐÔ¡£±ÈÈ磺
1. ËüÀïÃæ×Ô´øÁËÒ»¸öÃû½ÐGirdFSµÄ·Ö²¼Ê½Îļþϵͳ£¬Õâ¾ÍΪMongoDBµÄ²¿ÊðÌṩÁ˺ܴó±ãÀû¡£¶øÏñMySQLÕâÖֱȽÏÔçµÄÊý¾Ý¿â£¬ËäÈ»ÊÐÃæÉÏÓкܶ಻ͬµÄ·Ö±í²¿ÊðµÄ·½°¸£¬µ«ÕâÖÖÖÕ¾¿²»ÈçMongoDBÖ±½Ó¹Ù·½Ö§³ÖÀ´µÃ±ã½ÝʵÔÚ¡£
2. ÁíÍ⣬MongoDBÄÚ²¿»¹×Ô½¨Á˶Ômap-reduceÔËËã¿ò¼ÜµÄÖ§³Ö£¬ËäÈ»ÕâÖÖÖ§³Ö´Ó¹¦ÄÜÉÏ¿´»¹ËãÊDZȽϼòµ¥µÄ£¬Ï൱ÓÚMySQLÀïGroupBy¹¦ÄܵÄÀ©Õ¹°æ£¬²»¹ýҲΪÊý¾ÝµÄͳ¼Æ´øÀ´ÁË·½±ã¡£
3. MongoDBÔÚÆô¶¯ºó»á½«Êý¾Ý¿âÖеÄÊý¾ÝÒÔÎļþÓ³ÉäµÄ·½Ê½¼ÓÔØµ½ÄÚ´æÖС£Èç¹ûÄÚ´æ×ÊÔ´Ï൱·á¸»µÄ»°£¬Õ⽫¼«´óµØÌá¸ßÊý¾Ý¿âµÄ²éѯËÙ¶È£¬±Ï¾¹ÄÚ´æµÄI/OЧÂʱȴÅÅ̸߶àÁË¡£
µ«ÊÇ£¬×÷Ϊһ¸öÐÂÏʵÄÊÂÎñ£¬MongoDBÒ²´æÔÚןܶ಻×ã¡£ËüÔÚΪ¿ª·¢ÈËÔ±ÌṩÁ˱ãÀûµÄÇé¿öÏ£¬È´ÔÚÔËάÉÏÃæÁÙ×Ų»ÉÙÄÑÌ⣬±ÈÈ磺
1. ±ÈÆðMySQL£¬MongoDBûÓгÉÊìµÄÔËά¾Ñ飬ÐèÒª²»¶ÏµØÌ½Ë÷¡£
2. MongoDBÖеÄÊý¾Ý´æ·Å¾ßÓÐÏ൱µÄËæÒâÐÔ£¬²»¾ßÓÐMySQLÔÚ¿ªÊ¼¾Í¶¨ÒåºÃÁË¡£¶ÔÔËάÈËÔ±À´Ëµ£¬ËûÃÇ¿ÉÄܲ»Çå³þÊý¾Ý¿âÄÚ²¿Êý¾ÝµÄÊý¾Ý¸ñʽ£¬ÕâÒ²»áÊý¾Ý¿âµÄÔËά´øÀ´ÁËÂé·³¡£
2. ²âÊÔÄ¿µÄ
MongoDBÓëMySQL×÷ΪÁ½ÖÖ²»Í¬ÀàÐ͵ÄÊý¾Ý¿â£¬µ±ÆäÖдæ·ÅµÄ¼Ç¼ԽÀ´Ô½¶àµÄʱºò£¬Æä²åÈëЧÂʽ«»áÊܵ½ÔõÑùµÄÓ°Ï죬ÊDZ¾´ÎʵÑéËù¹Ø×¢µÄ¶ÔÏó¡£
ÔÚÕâÀÎÒÃǽ«±¾´ÎʵÑéÊý¾Ý¿âÖÐÊý¾Ý´æ´¢µÄ¹æÄ£¶¨ÔÚ1ÒÚÌõ¡£
3. ²âÊÔÌõ¼þ
»úÆ÷ÅäÖÃ: CPU£ºIntel(R) Xeon(R) CPU E5-2620
@ 2.00GHz
Äڴ棺65954040 KB
(¹Ø¼ü´Ê£º12ºËCPU£¬64GÄڴ棬¸øÎÒ¶àºÃ)
²Ù×÷ϵͳ: Linux version 2.6.32_1-8-0-0 (gcc version 4.4.4
20100726 (Red Hat 4.4.4-13) (GCC) )
MongoDB°æ±¾: 2.2.3£¬ÎÞÈκÎÓÅ»¯ÅäÖ㬵¥»ú²âÊÔ
MySQL°æ±¾: 5.1.49£¬ÎÞÈκÎÓÅ»¯ÅäÖ㬵¥»ú²âÊÔ
²âÊÔÓïÑÔ: Python 2.7.1
Êý¾Ý¿â½Ó¿ÚÇý¶¯£º
MongoDB : PyMongo 2.1.1
MySQL: MySQLdb 1.2.3
4. ¸ÅÄîÆÕ¼°
ÔÚÊý¾Ý¿â´æ·ÅµÄÊý¾ÝÖУ¬ÓÐÒ»ÖÖÌØÊâµÄ¼üÖµ½Ð×öÖ÷¼ü£¬ËüÓÃÓÚΩһµØ±êʶ±íÖеÄijһÌõ¼Ç¼¡£Ò²¾ÍÊÇ˵£¬Ò»¸ö±í²»ÄÜÓжà¸öÖ÷¼ü£¬²¢ÇÒÖ÷¼ü²»ÄÜΪ¿ÕÖµ¡£
ÎÞÂÛÊÇMongoDB»¹ÊÇMySQL£¬¶¼´æÔÚ×ÅÖ÷¼üµÄ¶¨Òå¡£
¶ÔÓÚMongoDBÀ´Ëµ£¬ÆäÖ÷¼üÃû½Ð¡±_id¡±£¬ÔÚÉú³ÉÊý¾ÝµÄʱºò£¬Èç¹ûÓû§²»Ö÷¶¯ÎªÆä·ÖÅäÒ»¸öÖ÷¼üµÄ»°£¬MongoDB»á×Ô¶¯ÎªÆäÉú³ÉÒ»¸öËæ»ú·ÖÅäµÄÖµ¡£
ÔÚMySQLÖУ¬Ö÷¼üµÄÖ¸¶¨ÊÇÔÚMySQL²åÈëÊý¾ÝʱָÃ÷PRIMARY KEYÀ´¶¨ÒåµÄ¡£µ±Ã»ÓÐÖ¸¶¨Ö÷¼üµÄʱºò£¬ÁíÒ»ÖÖ¹¤¾ß
¡ª¡ª Ë÷Òý£¬Ï൱ÓÚÌæ´úÁËÖ÷¼üµÄ¹¦ÄÜ¡£Ë÷Òý¿ÉÒÔΪ¿Õ£¬Ò²¿ÉÒÔÓÐÖØ¸´£¬ÁíÍâÓÐÒ»ÖÖ²»ÔÊÐíÖØ¸´µÄË÷Òý½ÐΩһË÷Òý¡£Èç¹û¼ÈûÓÐÖ¸¶¨Ö÷¼üҲûÓÐÖ¸¶¨Ë÷ÒýµÄ»°£¬MySQL»á×Ô¶¯ÎªÊý¾Ý´´½¨Ò»¸ö¡£
5. ²âÊÔ·½·¨
1. ÖÆ¶¨Ò»¸öÊý¾Ý¿â±íÏîµÄ×Ö¶ÎÄ£°å£¬ÒÔ´ËÄ£°åΪ»ù×¼ÏòÊý¾Ý¿âÖвåÈëÊý¾Ý¡£
2. ÔÚÄÚ´æÖÐ×Ô¶¯Éú³É1ÒÚÌõ´ý²âÊÔÊý¾Ý¡£Êý¾ÝµÄ¸ñʽÕâÀï²»ÔÙÒ»Ò»Áгö£¬ÆäÀïÃæ°üº¬ÁË´ó¸Å45¸ö×ֶΣ¬ÆäÖÐÓÐÒ»¸ö¹Ø¼üµÄ×Ö¶ÎÊÇ1
¨C 100,000,000 µÄmd5Öµ£¬ËüÃDZ˴˲¢²»Ïàͬ£¬ÆäËû×ֶεÄÊý¾Ý¶¼ÊÇдËÀ¡£Ã¿ÌõÊý¾ÝµÄ´óС´ó¸ÅÓÐ1K¡£
¼Çס£¬±¾´Î²âÊԵķ½·¨ÊÇÏÈÔÚÄÚ´æÖÐÉú³É1ÒÚÌõÊý¾Ýºó£¬ÔÙÖ´ÐвåÈë²Ù×÷µÄ¡£»¹ºÃ²âÊÔ»úÆ÷µÄÄÚ´æ×ã¹»´ó£¬Äܹ»´æÏÂÈç´Ë¶àµÄÊý¾Ý¡£
3. ÒÔÈçÏÂËÄÖÖģʽÏòÊý¾Ý¿âÖвåÈëÊý¾Ý£¬Ã¿²å1000ÌõÊý¾Ýʱ£¬¾ÍÍùÒ»¸ö¹Ì¶¨µÄÎļþÖÐдÈë¸Ãʱ¿ÌµÄʱ¼ä£º
a) ÔÚMongoDBÖÐÖ¸¶¨_idΪ1 ¨C 100,000,000 µÄmd5Öµ£¬½«Êý¾Ý²åÈ룻
b) ÔÚMongoDBÖв»Ö¸¶¨_idÖµ£¬½«1 ¨C 100,000,000 µÄmd5ÖµÊÓΪÆÕͨµÄ×ֶβåÈ룻
c) ÔÚMySQLÖÐÒÔ1 ¨C 100,000,000 µÄmd5ֵΪPRIMARY KEY£¬½«Êý¾Ý²åÈ룻
d) ÔÚMySQLÖв»Ö¸¶¨PRIMARY KEY£¬½«1 ¨C 100,000,000 µÄmd5ÖµÊÓΪÆÕͨµÄ×ֶβåÈë¡£
4. ¸ù¾ÝÉú³ÉµÄʱ¼äÎļþ¼Ç¼£¬·ÖÎöMySQLÓëMongoDBµÄ²åÈëÐÔÄÜ¡£
5. ½øÒ»²½£¬ÔÚÒÔÉÏËÄÖÖÊý¾Ý¿âµÄ»ù´¡ÉÏ£¬ÔÙ·Ö±ð²âÊÔÒ»ÏÂÊý¾Ý¿âµÄ¶ÁÈ¡ÐÔÄÜ¡£
6. ²âÊÔ¹ý³Ì
дºÃ²âÊԽű¾Ö®ºó£¬ÔËÐÐÖ®£¬Ë¯Ò»¾õÆð´²À´¿´½á¹û¾Í¿ÉÒÔÁË¡£¹ý³ÌÊÇÂþ³¤µÄ£¬µ«½á¹ûÈ´ÊÇ¿Éϲ¿ÉºØµÄ
:D
7. ²âÊÔ½á¹û
7.1 ƽ¾ùÿÌõÊý¾ÝµÄ²åÈëʱ¼ä
ÏÈÉÏÕÅͼ£¬À´µãÖ±¹Û¸ÐÊÜ£º

ͼÉÏÊý¾Ýºá×ø±êÊÇÆ½¾ùÿ²åÈë1000ÌõÊý¾ÝËùÐèÒªµÄʱ¼ä£¬µ¥Î»ÊÇÃë¡£¼Çס£¬ÊÇÿ1000ÌõÊý¾Ý£¬²»ÊÇÿÌõÊý¾ÝŶ¡£
×ܽ᣺
1. Êý¾Ý¿âµÄƽ¾ù²åÈëËÙÂÊ£ºMongoDB²»Ö¸¶¨_id²åÈë > MySQL²»Ö¸¶¨Ö÷¼ü²åÈë >
MySQLÖ¸¶¨Ö÷¼ü²åÈë > MongoDBÖ¸¶¨_id²åÈë¡£
2. MongoDBÔÚÖ¸¶¨_idÓë²»Ö¸¶¨_id²åÈëʱËÙ¶ÈÏà²îºÜ´ó£¬¶øMySQLµÄ²î±ðȴСºÜ¶à¡£
·ÖÎö£º
1. ÔÚÖ¸¶¨_id»òÖ÷¼üʱ£¬Á½ÖÖÊý¾Ý¿âÔÚ²åÈëʱҪ¶ÔË÷ÒýÖµ½øÐд¦Àí£¬²¢²éÕÒÊý¾Ý¿âÖÐÊÇ·ñ´æÔÚÏàͬµÄ¼üÖµ£¬Õâ»á¼õÂý²åÈëµÄËÙÂÊ¡£
2. ÔÚMongoDBÖУ¬Ö¸¶¨Ë÷Òý²åÈë±È²»Ö¸¶¨ÂýºÜ¶à£¬ÕâÊÇÒòΪ£¬MongoDBÀïÿһÌõÊý¾ÝµÄ_idÖµ¶¼ÊÇΨһµÄ¡£µ±ÔÚ²»Ö¸¶¨_id²åÈëÊý¾ÝµÄʱºò£¬Æä_idÊÇϵͳ×Ô¶¯¼ÆËãÉú³ÉµÄ¡£MongoDBͨ¹ý¼ÆËã»úÌØÕ÷Öµ¡¢Ê±¼ä¡¢½ø³ÌIDÓëËæ»úÊýÀ´È·±£Éú³ÉµÄ_idÊÇΨһµÄ¡£¶øÔÚÖ¸¶¨_id²åÈëʱ£¬MongoDBÿ²åÒ»ÌõÊý¾Ý£¬¶¼ÐèÒª¼ì²é´Ë_id¿É²»¿ÉÓ㬵±Êý¾Ý¿âÖÐÊý¾ÝÌõÊýÌ«¶àµÄʱºò£¬ÕâÒ»²½µÄ²éѯ¿ªÏú»áÍÏÂýÕû¸öÊý¾Ý¿âµÄ²åÈëËÙ¶È¡£
3. MongoDB»á³ä·ÖʹÓÃϵͳÄÚ´æ×÷Ϊ»º´æ£¬ÕâÊÇÒ»Öַdz£ÓÅÐãµÄÌØÐÔ¡£ÎÒÃǵIJâÊÔ»úµÄÄÚ´æÓÐ64G£¬ÔÚ²åÈëʱ£¬MongoDB»á¾¡¿ÉÄܵØÔÚÄÚ´æ¿ìд²»½øÈ¥Êý¾ÝÖ®ºó£¬ÔÙ½«Êý¾Ý³Ö¾Ã»¯±£´æµ½Ó²ÅÌÉÏ¡£ÕâÒ²ÊÇÔÚ²»Ö¸¶¨_id²åÈëµÄʱºò£¬MongoDBµÄЧÂÊÒ£Ò£ÁìÏȵÄÔÒò¡£µ«ÔÚÖ¸¶¨_id²åÈëʱ£¬µ±Êý¾ÝÁ¿Ò»´óÄÚ´æ×°²»ÏÂʱ£¬MongoDB¾ÍÐèÒª½«´ÅÅÌÖеÄÐÅÏ¢¶ÁÈ¡µ½ÄÚ´æÖÐÀ´²éÖØ£¬ÕâÑùÒ»À´Æä²åÈëЧÂÊ·´¶øÂýÁË¡£
4. MySQL²»À¢ÊÇÒ»Öַdz£Îȶ¨µÄÊý¾Ý¿â£¬ÎÞÂÛÔÚÖ¸¶¨Ö÷¼ü»¹ÊÇÔÚ²»Ö¸¶¨Ö÷¼ü²åÈëµÄÇé¿öÏ£¬ÆäЧÂʶ¼²î²»ÁËÌ«¶à¡£
7.2 ²åÈëÎȶ¨ÐÔ·ÖÎö
²åÈëÎȶ¨ÐÔÊÇÖ¸£¬Ëæ×ÅÊý¾ÝÁ¿µÄÔö´ó£¬Ã¿²åÈëÒ»¶¨Á¿Êý¾ÝʱµÄ²åÈëËÙÂÊÇé¿ö¡£
ÔÚ±¾´Î²âÊÔÖУ¬ÎÒÃǰÑÕâ¸öÖ¸±êµÄ¹æÄ£¶¨ÔÚ10w£¬¼´ÏÔʾµÄÊý¾ÝÊÇÔÚÿ²åÈë10wÌõÊý¾Ýʱ£¬ÔÚÕâ¶Îʱ¼äÄÚÿÃëÖÓÄܲåÈë¶àÉÙÌõÊý¾Ý¡£
ÏȳÊÏÖËÄÕÅͼÉÏÀ´£º
1. MongoDBÖ¸¶¨_id²åÈ룺

2. MongoDB²»Ö¸¶¨_id²åÈ룺

3. MySQLÖ¸¶¨PRIMARY KEY²åÈ룺

4. MySQL²»Ö¸¶¨PRIMARY KEY²åÈ룺

×ܽ᣺
1. ÕûÌåÉϵIJåÈëËÙ¶È»¹ÊǺÍÉÏÒ»»ØµÄͳ¼ÆÊý¾ÝÀàËÆ£ºMongoDB²»Ö¸¶¨_id²åÈë > MySQL²»Ö¸¶¨Ö÷¼ü²åÈë
> MySQLÖ¸¶¨Ö÷¼ü²åÈë > MongoDBÖ¸¶¨_id²åÈë¡£
2. ´ÓͼÖпÉÒÔ¿´³ö£¬ÔÚÖ¸¶¨Ö÷¼ü²åÈëÊý¾ÝµÄʱºò£¬MySQLÓëMongoDBÔÚ²»Í¬Êý¾ÝÊýÁ¿¼¶Ê±£¬Ã¿Ãë²åÈëµÄÊý¾Ýÿ¸ôÒ»¶Îʱ¼ä¾Í»áÓÐÒ»¸ö²¨¶¯£¬ÔÚͼ±íÖÐÏÔʾ³ÉΪ¹æÂɵÄë´ÌÏÖÏó¡£¶øÔÚ²»Ö¸¶¨²åÈëÊý¾Ýʱ£¬ÔÚ´ó¶àÊýÇé¿öϲåÈëËÙÂʶ¼±È½Ïƽ¾ù£¬µ«Ëæ×ÅÊý¾Ý¿âÖÐÊý¾ÝµÄÔö¶à£¬²åÈëµÄЧÂÊÔÚijһʱ¶ÎÓÐ˲¼äϽµ£¬Ëæ¼´ÓÖ»á±äÎȶ¨¡£
3. ÕûÌåÉÏÀ´¿´£¬MongoDBµÄËÙÂʲ¨¶¯±ÈMySQLµÄÑÏÖØ£¬·½²î±ä»¯½Ï´ó¡£
4. MongoDBÔÚÖ¸¶¨_id²åÈëʱ£¬µ±²åÈëµÄÊý¾Ý±ä¶àÖ®ºó£¬²åÈëЧÂÊÓÐÃ÷ÏÔµØÏ½µ¡£ÔÚÆäËûÈýÖֵIJåÈë²âÊÔÖУ¬´Ó¿ªÊ¼µ½½áÊø£¬Æä²åÈëµÄËÙÂÊÔÚ´ó¶àÊýµÄʱºò¶¼¹Ì¶¨ÔÚÒ»¸ö±ê×¼ÉÏ¡£
·ÖÎö£º
1. ë´ÌÏÖÏóÊÇÒòΪ£¬µ±²åÈëµÄÊý¾ÝÌ«¶àµÄʱºò£¬MongoDBÐèÒª½«ÄÚ´æÖеÄÊý¾Ýд½øÓ²ÅÌ£¬MySQLÐèÒªÖØÐÂ·Ö±í¡£ÕâЩ²Ù×÷ÿµ±Êý¾Ý¿âÖеÄÊý¾Ý´ïµ½Ò»¶¨Á¿¼¶ºó¾Í»á×Ô¶¯½øÐУ¬Òò´Ëÿ¸ôÒ»¶Îʱ¼ä¾Í»áÓÐÒ»¸öÃ÷ÏÔµÄë´Ì¡£
2. MongoDB±Ï¾¹»¹ÊÇÐÂÉúÊÂÎÆäÎȶ¨ÐÔûÓÐÒÑÓ¦ÓöàÄêµÄMySQLÓÅÐã¡£
3. MongoDBÔÚÖ¸¶¨_id²åÈëµÄʱºò£¬ÆäÐÔÄܵÄϽµ»¹ÊǺÜÀ÷º¦µÄ¡£
7.3 MySQLÓëMongoDB¶ÁÈ¡ÐÔÄܵļòµ¥²âÊÔ
ÕâÊÇÒ»¸ö¸½¼ÓµÄ²âÊÔ£¬Ò²²¢Ã»ÓвâÊԵ÷dz£ÍêÕû£¬µ«»¹ÊǺÜÄÜ˵Ã÷һЩÎÊÌâµÄ¡£
²âÊÔ·½·¨£º
ÏÈÔÚ1 ¨C 100, 000, 000ÕâÒ»ÒÚ¸öÊýÖУ¬·Ö±ðËæ»úÈ¡1w, 5w, 10w, 20w, 50w¸ö»¥²»ÏàͬµÄÊý×Ö£¬ÔÙ¼ÆËãÆämd5Öµ£¬²¢±£´æ¡£
ÖÁÓÚΪʲô×î¸ßֻѡµ½50wÕâ¸ö¹æÄ££¬ÕâÊÇÒòΪÎÒÔÚËæ»úÉú³É100w¸ö»¥²»ÏàͬµÄÊý×ÖµÄʱºò£¬Ð´µÄ½Å±¾ÅÜÁËÒ»ÍíÉ϶¼Ã»ÓÐÅܳöÀ´£¬¹À¼ÆÊÇÎÒÉú³ÉµÄË㷨дµÃÌ«ÀÃÁË¡£ÎÒ²»ÏëÖØÐÂÔÙŪÁË£¬ÔݾÍÒÔ50wΪÉÏÏÞ°É¡£
ÔÚÉÏÊö´øÖ÷¼ü²åÈëµÄÁ½¸öÊý¾Ý¿âÀ·Ö±ðÒÔÉÏÒ»²½Éú³ÉµÄmd5ԴΪÊäÈë½øÐвéѯ²Ù×÷¡£Í¬Ñù£¬Ã¿²éѯ1000ÌõÊý¾ÝÔÚÈÕÖ¾ÎļþÖн«µ±Ç°ÏµÍ³Ê±¼äдÈë¡£
²âÊÔ½á¹û£º

ÒÔÏÂÈýÕÅͼµÄºá×ø±êÊÇÿ²éѯ1000ÌõÊý¾ÝËùÐèÒªµÄʱ¼ä£¬µ¥Î»Îªs£»×Ý×ø±êÊDzéѯµÄ¹æÄ££¬·ÖΪ1w,
5w,10w, 20w, 50wÎå¸öµÈ¼¶¡£

ÕâÕÅͼÊÇÏêϸ¶Ô±È£¬¿ÉÒÔ¿´³öMySQLÓëMongoDBÖ®¼äµÄ²îÒìÁËÂð¡¡

×ܽ᣺
1. ÔÚ¶ÁÈ¡µÄÊý¾Ý¹æÄ£²»´óʱ£¬MongoDBµÄ²éѯËÙ¶ÈÕæÊÇÒ»Æï¾ø³¾£¬Ë¦¿ªMySQLºÃÔ¶ºÃÔ¶¡£
2. ÔÚ²éѯµÄÊý¾ÝÁ¿Öð½¥Ôö¶àµÄʱºò£¬MySQLµÄ²éѯËÙ¶ÈÊÇÎȲ½Ï½µµÄ£¬¶øMongoDBµÄ²éѯËÙ¶ÈÈ´ÓÐЩÆð·ü¡£
·ÖÎö£º
1. Èç¹ûMySQLûÓо¹ý²éѯÓÅ»¯µÄ»°£¬Æä²éѯËٶȾͲ»Òª¸úMongoDB±ÈÁË¡£MongoDB¿ÉÒÔ³ä·ÖÀûÓÃϵͳµÄÄÚ´æ×ÊÔ´£¬ÎÒÃǵIJâÊÔ»úÆ÷ÄÚ´æÊÇ64GBµÄ£¬ÄÚ´æÔ½´óMongoDBµÄ²éѯËٶȾÍÔ½¿ì£¬±Ï¾¹´ÅÅÌÓëÄÚ´æµÄI/OЧÂʲ»ÊÇÒ»¸öÁ¿¼¶µÄ¡£
2. ±¾´ÎʵÑéµÄ²éѯµÄÊý¾ÝÒ²ÊÇËæ»úÉú³ÉµÄ£¬Òò´ËËùÓдý²éѯµÄÊý¾Ý¶¼´æÔÚMongoDBµÄÄڴ滺´æÖеĸÅÂÊÊǺÜСµÄ¡£ÔÚ²éѯʱ£¬MongoDBÐèÒª¶à´Î½«ÄÚ´æÖеÄÊý¾ÝÓë´ÅÅ̽øÐн»»¥ÒÔ±ã²éÕÒ£¬Òò´ËÆä²éѯËÙÂÊÈ¡¾öÓÚÆä½»»¥µÄ´ÎÊý¡£ÕâÑù¾Í´æÔÚÕâÑùÒ»ÖÖ¿ÉÄÜÐÔ£¬¾¡¹Ü´ý²éѯµÄÊý¾ÝÊýÄ¿½Ï¶à£¬µ«Õâ¶ÎËæ»úÉú³ÉµÄÊý¾Ý±»MongoDBÒÔ½ÏÉٵĴÎÊý´Ó´ÅÅÌÖÐÈ¡³ö¡£Òò´Ë£¬Æä²éѯµÄƽ¾ùËÙ¶È·´¶ø¸ü¿ìһЩ¡£ÕâÑù¿´À´£¬MongoDBµÄ²éѯËٶȲ¨¶¯Ò²´¦ÔÚÒ»¸öºÏÀíµÄ·¶Î§ÄÚ¡£
3. MySQLµÄÎȶ¨ÐÔ»¹ÊÇÎãÓ¹ÖÃÒɵġ£
8. ²âÊÔ×ܽá
8.1 ²âÊÔ½áÂÛ
1. Ïà±È½ÏMySQL£¬MongoDBÊý¾Ý¿â¸üÊʺÏÄÇЩ¶Á×÷Òµ½ÏÖØµÄÈÎÎñÄ£ÐÍ¡£MongoDBÄܳä·ÖÀûÓûúÆ÷µÄÄÚ´æ×ÊÔ´¡£Èç¹û»úÆ÷µÄÄÚ´æ×ÊÔ´·á¸»µÄ»°£¬MongoDBµÄ²éѯЧÂÊ»á¿ìºÜ¶à¡£
2. ÔÚ´ø¡±_id¡±²åÈëÊý¾ÝµÄʱºò£¬MongoDBµÄ²åÈëЧÂÊÆäʵ²¢²»¸ß¡£Èç¹ûÏë³ä·ÖÀûÓÃMongoDBÐÔÄܵϰ£¬ÍƼö²ÉÈ¡²»´ø¡±_id¡±µÄ²åÈ뷽ʽ£¬È»ºó¶ÔÏà¹Ø×Ö¶Î×÷Ë÷ÒýÀ´²éѯ¡£
8.2 ²âÊÔÐèÒª½øÒ»²½×¢ÒâµÄÎÊÌâ
¶ÔMongoDBµÄ¶ÁÈ¡²âÊÔ¿¼ÂDz»ÖÜ£¬ËäÈ»ÕâÖ»ÊÇÒ»¸ö¶îÍâµÄ²âÊÔ¡£ÔÚÕâ¸ö²âÊÔÖУ¬Ëæ»úÉú³É´óÁ¿´ý²âÊÔµÄÊý¾ÝºÜÓбØÒª£¬µ«Éú³É´óÁ¿»¥²»ÏàͬµÄÊý¾Ý¾ÍûÓбØÒªÁË¡£ÕýÊÇÕâÒ»µã£¬°ÑÎҵĶÁÈ¡²âÊÔ¹æÄ£ÏÞ¶¨ÔÚÁË50wÌõ£¬Ã»ÄܽøÒ»²½½øÐзÖÎö¡£
8.3 MongoDBµÄÓÅÊÆ
1. MongoDBÊʺÏÄÇЩ¶ÔÊý¾Ý¿â¾ßÌåÊý¾Ý¸ñʽ²»Ã÷È·»òÕßÊý¾Ý¿âÊý¾Ý¸ñʽ¾³£±ä»¯µÄÐèÇóÄ£ÐÍ£¬¶øÇÒ¶Ô¿ª·¢ÕßÊ®·ÖÓѺá£
2. MongoDB¹Ù·½¾Í×Ô´øÒ»¸ö·Ö²¼Ê½Îļþϵͳ£¬¿ÉÒԺܷ½±ãµØ²¿Êðµ½·þÎñÆ÷»úȺÉÏ¡£MongoDBÀïÓÐÒ»¸öShardµÄ¸ÅÄ¾ÍÊÇ·½±ãΪÁË·þÎñÆ÷·ÖƬʹÓõġ£Ã¿Ôö¼Óһ̨Shard£¬MongoDBµÄ²åÈëÐÔÄÜÒ²»áÒÔ½Ó½ü±¶ÊýµÄ·½Ê½Ôö³¤£¬´ÅÅÌÈÝÁ¿Ò²ºÜ¿ÉÒԺܷ½±ãµØÀ©³ä¡£
3. MongoDB»¹×Ô´øÁ˶Ômap-reduceÔËËã¿ò¼ÜµÄÖ§³Ö£¬ÕâÒ²ºÜ·½±ã½øÐÐÊý¾ÝµÄͳ¼Æ¡£
ÆäËû·½ÃæµÄÓÅÊÆ»¹ÔÚ·¢¾òÖУ¬±¾ÈËÒ²ÊǸոսӴ¥Õâ¸ö²»¾Ã¡£
8.4 MongoDBµÄȱÏÝ
1. ÊÂÎñ¹ØÏµÖ§³Ö±¡Èõ¡£ÕâÒ²ÊÇËùÓÐNoSQLÊý¾Ý¿â¹²Í¬µÄȱÏÝ£¬²»¹ýNoSQL²¢²»ÊÇΪÁËÊÂÎñ¹ØÏµ¶øÉè¼ÆµÄ£¬¾ßÌåÓ¦Óû¹ÊǺÜÐèÇó¡£
2. Îȶ¨ÐÔÓÐЩǷȱ£¬Õâµã´ÓÉÏÃæµÄ²âÊÔ±ã¿ÉÒÔ¿´³ö¡£
3. MongoDBÒ»·½ÃæÔÚ·½±ã¿ª·¢ÕßµÄͬʱ£¬ÁíÒ»·½Ãæ¶ÔÔËάÈËԱȴÌá³öÁËÏ൱¶àµÄÒªÇó¡£Òµ½ç²¢Ã»ÓгÉÊìµÄMongoDBÔËά¾Ñ飬MongoDBÖÐÊý¾ÝµÄ´æ·Å¸ñʽҲºÜËæÒ⣬µÈµÈÎÊÌâ¶¼¶ÔÔËάÈËÔ±µÄ¿¼Ñé¡£
|