SQL vs NoSQL£ºÈçºÎÑ¡Ôñ£¿

·¢±íÓÚ£º2015-10-09 09:00

×ÖÌ壺´ó ÖРС | ÉÏһƪ | ÏÂһƪ | ÎÒҪͶ¸å

 ×÷Õߣº³ÌĬ    À´Ô´£º51TestingÈí¼þ²âÊÔÍø²É±à

·ÖÏí£º
¡¡¡¡SchemaÊǹ̶¨²»±äµÄ
¡¡¡¡ÎÒÃÇûÓп¼Âǵ½ÁªÏµÈ˵ÄÖмäÃû×Ö¡¢³öÉúÈÕÆÚ¡¢¹«Ë¾»òְλ¡£ÎÒÃÇÌí¼Ó¶àÉÙ×ֶζ¼Ã»¹Øϵ£¬ÎÒÃǺܿì»áÊܵ½¸üеÄÐèÇóÒªÌí¼Ó±¸×¢¡¢¼ÍÄîÈÕ¡¢¹Øϵ״̬¡¢É罻ýÌåÕ˺š¢ÄÚÍȲâÁ¿Öµ¡¢×îϲ»¶µÄÄÌÀÒÀàÐ͵È×ֶΡ£Ô¤²âËùÓÐÑ¡ÏîÊDz»¿ÉÄܵģ¬Òò´ËÎÒÃÇ¿ÉÄÜÐèÒªÒ»¸ö otherdata ±í£¬ÓÃÀ´´¦ÀíÃû×Ö-Öµ¶Ô¡£
¡¡¡¡Êý¾ÝÊÇËéƬ»¯µÄ
¡¡¡¡¶Ô¿ª·¢Õß»òÕßϵͳ¹ÜÀíÔ±À´Ëµ£¬¼ì²éÊý¾Ý¿â²¢²»ÈÝÒס£³ÌÐòÂß¼­»á±äµÃ¸üÂý¡¢¸ü¸´ÔÓ£¬ÒòΪÀûÓõ¥¸ö SELECT ºÍ¶à¸ö JOIN Óï¾ä²éѯÁªÏµÈËÊý¾Ý²»Ì«Êµ¼Ê¡£(Äã¿ÉÒÔÕâô×ö£¬µ«Êǽá¹û¿ÉÄÜÐèÒª°üº¬ telephone£¬email£¬ºÍ address×ֶεÄÿһÖÖ×éºÏ£ºÈç¹ûÓиöÁªÏµÈËÓÐÈý¸öµç»°ºÅÂ룬Îå¸öEmailµØÖ·ºÍÁ½¸öסַ£¬ÄÇôSQL²éѯ½«»á²úÉú30Ìõ½á¹û¡£) ×îºó£¬È«ÎÄËÑË÷ºÜÀ§ÄÑ¡£Èç¹ûÓÐÈËÊäÈë×Ö·û´®¡±SitePoint¡±£¬ÎÒÃDZØÐë¼ì²éËùÓÐµÄ±í£¬¿´¿´ËüÊÇ·ñΪÁªÏµÈËÃû×Ö¡¢µç»°¡¢Email»òÕßסַµÄÒ»²¿·Ö£¬²¢ÇÒÐèÒª×öÏàÓ¦µÄÅÅÐò¡£Èç¹ûÄãÓùýWordPressµÄËÑË÷¹¦ÄÜ£¬Äã¾Í»áÃ÷°×ÕâÓжàÅ°ÐÄ¡£
¡¡¡¡Ñ¡ÔñNoSQL
¡¡¡¡ÎÒÃǵÄÁªÏµÈËÊý¾Ý¹Ø×¢µÄÊÇÈË¡£ËûÃÇÄÑÒÔÔ¤²â£¬ÔÚ²»Í¬µÄʱ¼äÓв»Í¬µÄÐèÇó¡£Ê¹ÓÃNoSQLÊý¾Ý¿â£¬ÁªÏµÈËÁÐ±í½«»á´ÓÖÐÊÜÒæ¡£Êý¾Ý¿â½«Ò»¸öÁªÏµÈ˵ÄËùÓÐÊý¾Ý´æ´¢ÔÚÒ»¸öµ¥¶ÀµÄÎĵµÀïµÄcontacts ¼¯ºÏÀï¡£
{
name: [
"Billy", "Bob", "Jones"
],
company: "Fake Goods Corp",
jobtitle: "Vice President of Data Management",
telephone: {
home: "0123456789",
mobile: "9876543210",
work: "2244668800"
},
email: {
personal: "bob@myhomeemail.net",
work: "bob@myworkemail.com"
},
address: {
home: {
line1: "10 Non-Existent Street",
city: "Nowhere",
country: "Australia"
}
},
birthdate: ISODate("1980-01-01T00:00:00.000Z"),
twitter: '@bobsfakeaccount',
note: "Don't trust this guy",
weight: "200lb",
photo: "52e86ad749e0b817d25c8892.jpg"}
¡¡¡¡ÔÚÕâ¸öÀý×ÓÀÎÒÃÇûÓд洢ÁªÏµÈ˵ÄÍ·ÏλòÕßÐÔ±ð£¬ÎÒÃÇ»¹Ìí¼ÓÁËһЩÊý¾Ý£¬¶øÕâЩÊý¾Ý²»ÐèÒªÓ¦Óõ½ÈκÎÆäËûÁªÏµÈË¡£Ã»¹Øϵ¡ª¡ªÎÒÃǵÄNoSQLÊý¾Ý¿â²»»á½éÒ⣬ÎÒÃÇ»¹¿ÉÒÔËæÒâÌí¼Ó»òÒƳý×ֶΡ£
¡¡¡¡ÓÉÓÚÁªÏµÈËÊý¾ÝÔÚµ¥¶ÀµÄÎĵµÀÎÒÃÇ¿ÉÒÔÓÃÒ»Ìõ²éѯÓï¾ä»ñÈ¡Ò»²¿·Ö»òÈ«²¿ÐÅÏ¢¡£È«ÎÄËÑË÷Ò²±äµÃ¼òµ¥£»ÔÚMongoDBÀÎÒÃÇ¿ÉÒÔÕâÑù¶¨Òå contact ÖеÄËùÓÐÎı¾×ֶεÄË÷Òý£º
¡¡¡¡db.contact.createIndex({ "$**": "text" });
¡¡¡¡È»ºóÖ´ÐÐÈ«ÎÄËÑË÷£º
¡¡¡¡db.contact.find({
¡¡¡¡$text: { $search: "something" }});
¡¡¡¡³¡¾°¶þ£ºÉç½»ÍøÂç
¡¡¡¡Éç½»ÍøÂç¿ÉÄÜʹÓÃÀàËƵÄÁªÏµÈËÊý¾Ý´æ´¢£¬µ«ÊÇËü»á¸ù¾Ý¹¦Äܼ¯ºÏÀ©Õ¹£¬±ÈÈç¹ØϵÁ´¡¢×´Ì¬¸üС¢·¢ËÍÏûÏ¢ºÍ¡±ÔÞ¡°¡£ÕâЩ¹¦ÄÜ¿ÉÄÜ»á¸ù¾ÝÓû§ÐèÇóÀ´ÊµÏÖ»òÕßÒƳý¡ª¡ªÎÞ·¨Ô¤²âËüÃÇ»áÔõÑùÑݽø¡£
¡¡¡¡ÁíÍâ:
¡¡¡¡´ó²¿·ÖµÄÊý¾Ý¸üж¼À´×Ôµ¥¸öÔ´£ºÓû§¡£ÈκÎʱºòÎÒÃDz»Ì«¿ÉÄÜͬʱ¸üÐÂÁ½Ìõ»ò¸ü¶à¼Ç¼£¬Òò´Ë²»ÒªÇóÀàËÆÊÂÎñ¿ØÖƵŦÄÜ¡£
¡¡¡¡¾¡¹ÜÓÐЩÓû§¿ÉÄÜÈÏΪ£¬×´Ì¬¸üÐÂʧ°Ü²»¿ÉÄÜÒýÆðϵͳ±ÀÀ£»ò¾­¼ÃËðʧ¡£Ó¦ÓóÌÐòµÄ½Ó¿ÚºÍÐÔÄܱÈÊý¾ÝÍêÕûÐÔÓÅÏȼ¶¸ü¸ß¡£
¡¡¡¡NoSQL¿´À´ÊǸöºÃµÄ·½°¸¡£ËüÔÊÐíÎÒÃÇ¿ìËÙµØʵÏÖ´æ´¢²»Í¬ÀàÐÍÊý¾ÝµÄ¹¦ÄÜ¡£ÀýÈ磬¿ÉÒÔÓõ¥¸öÎĵµÀïµÄ status ¼¯ºÏÌæ»»ËùÓÐÓû§µÄ¹ýʱµÄ״̬¸üС£
{
user_id: ObjectID("65f82bda42e7b8c76f5c1969"),
update: [
{
date: ISODate("2015-09-18T10:02:47.620Z"),
text: "feeling more positive today"
},
{
date: ISODate("2015-09-17T13:14:20.789Z"),
text: "spending far too much time here"
}
{
date: ISODate("2015-09-17T12:33:02.132Z"),
text: "considering my life choices"
}
]}
¡¡¡¡Îĵµ¿ÉÄÜ»á±äµÃºÜ³¤£¬µ«ÎÒÃÇ¿ÉÒÔ»ñÈ¡Êý×éµÄ×Ó¼¯£¬±ÈÈç×î½üµÄ¸üС£Ã¿¸öÓû§µÄËùÓеÄÀúʷ״̬¼Ç¼¶¼Äܱ»¿ìËÙËÑË÷µ½¡£
¡¡¡¡ÏÖÔÚ¼ÙÉèÎÒÃÇÏëÔÚ·¢²¼¸üеÄʱºòÒýÈë±íÇé·ûºÅÑ¡Ôñ¡£ÕâÉæ¼°µ½¸ø update Êý×éÀïµÄмǼÌí¼ÓͼÒýÓᣲ»Ïñ SQL ´æ´¢£¬Ã»±ØÒª°Ñ֮ǰÏûÏ¢ÀïµÄ±íÇé·ûºÅÖÃΪ NULL¡ª¡ªÎÒÃǵijÌÐòÂß¼­¿ÉÒÔÏÔʾĬÈÏͼƬ»òÕßûÓÐͼƬ£¬Èç¹ûûÓÐÉèÖñíÇé·ûºÅµÄ»°¡£
¡¡¡¡³¡¾°Èý£º²Ö¿â¹ÜÀíϵͳ
¡¡¡¡¿¼ÂÇÒ»¸ö¼à¿Ø²Ö¿â»õÎïµÄϵͳ¡£ÎÒÃÇÐèÒª¼Ç¼£º
¡¡¡¡ËÍ´ï²Ö¿â²¢±»·ÖÅäµ½Ö¸¶¨Î»ÖõÄÎïÆ·
¡¡¡¡²Ö¿âÄÚÎïÆ·µÄÒƶ¯£¬Ò²¾ÍÊÇÖØÐÂÕûÀí¿â´æ£¬ÒÔ±ãÈÃͬÑùµÄÎïÆ··ÅÔÚÏàÁÚµÄλÖÃ
¡¡¡¡¶©µ¥ÒÔ¼°ºóÐø½«ÎïÆ·°á³ö²Ö¿â£¬×¼±¸·¢»õ
¡¡¡¡ÎÒÃǵÄÊý¾ÝÐèÇó£º
¡¡¡¡Í¨ÓõÄÎïÆ·ÐÅÏ¢£¬±ÈÈç°ü×°ÊýÁ¿¡¢³ß´çºÍÑÕÉ«µÈ¿É±»´æ´¢£¬µ«ÕâЩÊÇÎÒÃÇ¿ÉÒÔʶ±ð²¢Ó¦Óõ½ÈκÎÎïÆ·ÉϵÄÀëÉ¢Êý¾Ý¡£ÎÒÃDz»Ì«¿ÉÄܹØעϸ½Ú£¬ÀýÈç±Ê¼Ç±¾´¦ÀíÆ÷ËٶȻòÕßÖÇÄÜÊÖ»úµÄµç³ØÊÙÃü¡£
¡¡¡¡×îС»¯³ö´íµÄ¿ÉÄÜÊDZØÒªµÄ¡£ÎÒÃDz»ÄÜÈÃÎïƷƾ¿ÕÏûʧ»òÕßÒƵ½ÒѾ­ÓбðµÄÎïÆ·´æ·ÅµÄλÖá£
¡¡¡¡¼òµ¥À´Ëµ£¬ÎÒÃÇÔڼǼÎïÆ·´ÓÒ»¸öÎïÀíÇøÓòµ½ÁíÒ»¸öÎïÀíÇøÓòµÄתÒÆ¡ª¡ª»òÕß´ÓAλÖÃÒÆ×ߣ¬·Åµ½BλÖá£ÕâÊÇͬһ¸ö¶¯×÷µÄÁ½´Î¸üС£
¡¡¡¡ÎÒÃÇÐèÒªÒ»¸ö¾ß±¸Ç¿ÖÆÊý¾ÝÍêÕûÐÔºÍÊÂÎñÖ§³ÖµÄ½¡×³´æ´¢ÏµÍ³¡££¨µ±Ç°£©Ö»ÓÐ SQL Êý¾Ý¿âÂú×ãÕâЩÐèÇó¡£
¡¡¡¡±íÏÖ×Ô¼º!
¡¡¡¡ÎÒÏ£ÍûÕâЩ³¡¾°ÓÐËù°ïÖú£¬µ«ÊÇÿ¸öÏîÄ¿ÊDz»Í¬µÄ£¬×îÖÕ£¬ÄãÐèÒª×ö³ö×Ô¼ºµÄ¾ö¶¨¡£(ËäÈ»£¬ÎÒÃÇ¿ª·¢ÈËÔ±Éó¤ÓÚÖ¤Ã÷ÎÒÃǵļ¼ÊõÑ¡Ôñ£¬²»¹ÜËûÃÇÓжàºÃ!)
¡¡¡¡×îºÃµÄ½¨Òé:ÏÔ¶Äã×Ô¼º¾¡¿ÉÄܶàµÄ¼¼Êõ¡£ÕâЩ֪ʶ¿ÉÒÔÈÃÄã¶ÔSQL»òÕßNoSQL×ö³öÒ»¸öÀíÐÔºÍÇé¸ÐÉϹ«ÕýµÄÅжϡ£×£ÄúºÃÔË¡£
22/2<12
¼ÛÖµ398ÔªµÄ²âÊԿγÌÃâ·ÑÔùËÍ£¬ÌîÎʾíÁìÈ¡°É£¡

¹Ø×¢51Testing

ÁªÏµÎÒÃÇ

¿ì½ÝÃæ°å Õ¾µãµØͼ ÁªÏµÎÒÃÇ ¹ã¸æ·þÎñ ¹ØÓÚÎÒÃÇ Õ¾³¤Í³¼Æ

·¨ÂɹËÎÊ£ºÉϺ£äîϪÂÉʦÊÂÎñËù ÏîÆåÂÉʦ
°æȨËùÓÐ ÉϺ£²©Îª·åÈí¼þ¼¼Êõ¹É·ÝÓÐÏÞ¹«Ë¾ Copyright©51testing.com 2003-2022
ͶËß¼°Òâ¼û·´À¡£ºwebmaster@51testing.com; ÒµÎñÁªÏµ£ºservice@51testing.com 021-64471599-8017

»¦ICP±¸05003035ºÅ

»¦¹«Íø°²±¸ 31010102002173ºÅ