ฉันเป็น noob ที่สมบูรณ์เมื่อพูดถึงการเคลื่อนที่ NoSQL ฉันเคยได้ยินมากมายเกี่ยวกับ MongoDB และ CouchDB ฉันรู้ว่ามีความแตกต่างระหว่างคนทั้งสอง สิ่งใดที่คุณแนะนำให้เรียนรู้เป็นก้าวแรกสู่โลกของ NoSQL
ฉันเป็น noob ที่สมบูรณ์เมื่อพูดถึงการเคลื่อนที่ NoSQL ฉันเคยได้ยินมากมายเกี่ยวกับ MongoDB และ CouchDB ฉันรู้ว่ามีความแตกต่างระหว่างคนทั้งสอง สิ่งใดที่คุณแนะนำให้เรียนรู้เป็นก้าวแรกสู่โลกของ NoSQL
คำตอบ:
ดูลิงค์ต่อไปนี้
ปรับปรุง : ฉันพบการเปรียบเทียบฐานข้อมูลNoSQLอย่างมาก
MongoDB (3.2)
ใช้ดีที่สุด : หากคุณต้องการคิวรีแบบไดนามิก หากคุณต้องการกำหนดดัชนีอย่าแมป / ลดฟังก์ชั่น หากคุณต้องการประสิทธิภาพที่ดีในฐานข้อมูลขนาดใหญ่ หากคุณต้องการ CouchDB แต่ข้อมูลของคุณเปลี่ยนแปลงมากเกินไปให้เติมดิสก์
ตัวอย่างเช่น : สำหรับสิ่งส่วนใหญ่ที่คุณจะทำกับ MySQL หรือ PostgreSQL แต่การมีคอลัมน์ที่กำหนดไว้ล่วงหน้าจะช่วยให้คุณกลับมา
CouchDB (1.2)
ใช้ดีที่สุด : สำหรับการรวบรวมข้อมูลที่เปลี่ยนแปลงเป็นครั้งคราวซึ่งแบบสอบถามที่กำหนดไว้ล่วงหน้าจะต้องถูกเรียกใช้ สถานที่ที่การกำหนดเวอร์ชันมีความสำคัญ
ตัวอย่างเช่น : ระบบ CRM, CMS การทำสำเนาต้นแบบหลักเป็นคุณลักษณะที่น่าสนใจโดยเฉพาะช่วยให้การปรับใช้หลายไซต์ทำได้ง่าย
หากคุณมาจากโลก MySQL, MongoDB จะ "รู้สึก" เป็นธรรมชาติมากขึ้นสำหรับคุณเนื่องจากการสนับสนุนภาษาที่ใช้แบบสอบถาม
ฉันคิดว่านั่นเป็นสิ่งที่ทำให้เป็นมิตรกับผู้คนมากมาย
CouchDB นั้นยอดเยี่ยมถ้าคุณต้องการใช้การสนับสนุนการจำลองแบบต้นแบบที่ยอดเยี่ยมจริง ๆ ด้วยการตั้งค่าหลายโหนดอาจเป็นไปได้ในศูนย์ข้อมูลต่าง ๆ หรืออะไรทำนองนั้น
การจำลองแบบของ MongoDB (ชุดแบบจำลอง) เป็นการตั้งค่า master-slave-slave-slave- * คุณสามารถเขียนถึงต้นแบบในชุดแบบจำลองและอ่านจากชุดใด ๆ
สำหรับการกำหนดค่าไซต์มาตรฐานนั้นใช้ได้ มันแผนที่การใช้งาน MySQL ได้ดีจริงๆ
แต่ถ้าคุณพยายามที่จะสร้างบริการทั่วโลกเช่น CDN ที่ต้องการให้โหนดทั่วโลกทั้งหมดซิงค์แม้ว่าการอ่าน / เขียนทั้งหมดนั้นการจำลองแบบใน CouchDB จะเป็นประโยชน์อย่างมากสำหรับคุณ
ในขณะที่ MongoDB มีภาษาคล้ายข้อความค้นหาที่คุณสามารถใช้และให้ความรู้สึกเป็นธรรมชาติได้มาก CouchDB ใช้วิธีการ "ลดแผนที่" และแนวคิดของมุมมองนี้ ตอนแรกมันรู้สึกแปลก ๆ แต่เมื่อคุณได้รับมันมันจะเริ่มรู้สึกเป็นธรรมชาติ
นี่เป็นภาพรวมโดยย่อดังนั้นจึงมีความหมายบางประการ:
ดังนั้นทั้งสองแหล่งใช้เอกสาร JSON แต่ CouchDB ทำตามนี้มากกว่า "เซิร์ฟเวอร์ทุกเครื่องเป็นหลักและสามารถซิงค์กับโลก" ซึ่งเป็นวิธีที่ยอดเยี่ยมหากคุณต้องการในขณะที่ MongoDB เป็น MySQL ของโลก NoSQL จริงๆ
ดังนั้นหากฟังดูเหมือนสิ่งที่คุณต้องการ / ต้องการให้ทำเช่นนั้น
ความแตกต่างเล็กน้อยเช่นโปรโตคอลไบนารีของ Mongo เทียบกับอินเตอร์เฟส RESTful ของ CouchDB ล้วนเป็นรายละเอียดเล็กน้อย
ถ้าคุณต้องการความรวดเร็วของข้อมูลและความปลอดภัยของข้อมูลคุณสามารถทำให้ Mongo ทำงานได้เร็วกว่า CouchDB เพราะคุณสามารถบอกได้ว่าหน่วยความจำไม่เพียงพอและไม่ต้องใช้สิ่งใดในดิสก์ยกเว้นช่วงระยะห่าง
คุณสามารถทำเช่นเดียวกันกับ Couch ได้ แต่โปรโตคอลการสื่อสาร HTTP ที่ใช้ HTTP นั้นจะช้ากว่าการสื่อสารแบบไบนารีดิบกับ Mongo 2-4 เท่าใน "ความเร็วเหนือทุกอย่าง!" สถานการณ์
โปรดทราบว่าความเร็วบ้าบ้าดิบนั้นไร้ประโยชน์หากเซิร์ฟเวอร์ล้มเหลวหรือดิสก์ขัดข้องและทำให้ DB ของคุณเข้าสู่การลืมเลือนดังนั้นจุดข้อมูลนั้นไม่น่าอัศจรรย์เท่าที่ควร (เว้นแต่คุณกำลังทำระบบซื้อขายแบบเรียลไทม์บนกำแพง ถนนซึ่งในกรณีนี้ดูที่ Redis)
หวังว่าทุกอย่างจะช่วย!
ขณะนี้มีฐานข้อมูล NoSQL จำนวนมากในตลาดมากขึ้นกว่าเดิม ฉันขอแนะนำให้ดูที่ Gartner Magic Quadrant หากคุณกำลังมองหาฐานข้อมูลที่จะยอดเยี่ยมสำหรับแอพพลิเคชั่นระดับองค์กรตามการสนับสนุนการขยายการจัดการและค่าใช้จ่าย
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
ฉันอยากจะแนะนำ Couchbase ให้กับทุกคนที่ยังไม่ได้ลอง แต่ไม่ได้อิงตามรุ่นที่แสดงในรายงาน (2.5.1) เพราะมันเกือบ 2 รุ่นที่อยู่ด้านหลังซึ่ง CB Server ในปัจจุบันใกล้รีลีส 4.0 ใน 2H15 .
http://www.couchbase.com/coming-in-couchbase-server-4-0
อีกส่วนหนึ่งเกี่ยวกับ Couchbase ในฐานะผู้จำหน่าย / ผลิตภัณฑ์คือเป็นฐานข้อมูลที่ใช้งานได้หลากหลาย มันสามารถทำหน้าที่เป็นร้าน K / V ล้วนๆฐานข้อมูล Document Oriented ที่มีการปรับขนาดหลายมิติ Memcached แคชกันอย่างต่อเนื่องและสนับสนุน SQL ที่สอดคล้องกับ ANSI 92 ด้วยการเข้าร่วมอัตโนมัติการจำลองแบบกลุ่ม DR ด้วยการกดปุ่มและ แม้จะมีองค์ประกอบมือถือในตัวกับระบบนิเวศ
หากไม่มีสิ่งใดเป็นมูลค่าการตรวจสอบมาตรฐานล่าสุด:
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html