สำหรับกรณีของคุณโดยเฉพาะ MongoDB ฟังดูเหมือนเป็นทางเลือกที่ดี แต่มีสถานการณ์มากมาย
MongoDB เหมาะสมกว่าในสถานการณ์ที่เรียกร้องให้มีการอ่าน / เขียนข้อมูลจำนวนมากโดยไม่ต้องเน้นเรื่องความปลอดภัยของธุรกรรม (หากข้อมูลบางอย่างอาจสูญหายไปจากเซิร์ฟเวอร์ล่มก็ไม่ใช่เรื่องใหญ่) คาดว่าจะขยายใหญ่ขึ้นและไม่ต้อง ' ไม่มี schema ที่เสถียรจริงๆ
MongoDB ไม่เหมาะกับสถานการณ์ที่ต้องการ:
- การรับประกันกรดที่แข็งแกร่ง: MongoDB ช่วยให้สามารถจัดเก็บข้อมูลที่ซ้ำกันการอ่านที่ไม่สอดคล้องและการสูญหายของข้อมูล สิ่งเหล่านี้ใช้ได้ในบางแอปพลิเคชัน แต่ไม่ได้อยู่ในส่วนใหญ่
- ธุรกรรมหลายวัตถุ: MongoDB รองรับธุรกรรม ACID แต่สำหรับวัตถุ / เอกสารเดียวเท่านั้น สิ่งนี้จะไม่ลดลงสำหรับการดำเนินการที่ซับซ้อนมากขึ้นเช่นการโอนเงินผ่านธนาคารการจอง ฯลฯ
- Traditional BI: มีเครื่องมือ BI มากมายที่เล่นได้ดีกับ SQL แบบดั้งเดิมเท่านั้น
- SQL: MongoDB มีภาษาข้อความค้นหาที่เฉพาะเจาะจงมากในขณะที่ SQL เป็นที่รู้จักกันดีโดยผู้คนจำนวนมาก (อาจเป็นสิ่งสำคัญในการพิจารณา) สามารถทำสิ่งที่ซับซ้อนได้หลายอย่าง เข้าร่วม) และสามารถถ่ายโอนข้ามการใช้งานได้มากมาย
MongoDB เร็วขึ้นและช่วยให้คุณสามารถเพิ่มประสิทธิภาพการทำงานของระบบได้มากขึ้นโดยการกำจัดสิ่งต่าง ๆ มากมายที่ RDBMS บังคับใช้โดยค่าเริ่มต้นเช่นการตรวจสอบความสมบูรณ์ (โปรดทราบว่าคุณสามารถปรับแต่ง RDBMS เพื่อวัตถุประสงค์ดังกล่าวได้) ในสถานการณ์ส่วนใหญ่ก็ไม่จำเป็น นอกจากนี้ข้อเสียคือความน่าเชื่อถือและความยืดหยุ่น (คุณจะมีปัญหาถ้าในภายหลังคุณตัดสินใจว่าคุณจะต้องดำเนินการที่ซับซ้อนมากขึ้นด้วยข้อมูลที่มีอยู่)
ทุกอย่างขึ้นอยู่กับความต้องการของแอปพลิเคชันที่คุณกำลังสร้าง มันคือความเร็วและความพร้อมใช้งานหรือความปลอดภัยความน่าเชื่อถือและความยืดหยุ่น คุณต้องรู้ว่าข้อมูลของคุณอยู่ที่ไหน (และในการเชื่อมต่อข้อมูล) มีคุณค่ามากขึ้น หากคุณยังไม่ทราบอาจเป็นวิธีที่ดีที่สุดถ้าคุณเลือกบางอย่างที่จะไม่ทำให้คุณเข้ามุมในอนาคตและจะช่วยให้คุณเพิ่มคุณสมบัติและดำเนินการตามที่แอปพลิเคชันของคุณต้องการ