ฉันไม่ใช่ผู้เชี่ยวชาญด้านฐานข้อมูลและไม่มีพื้นฐานด้านวิทยาศาสตร์คอมพิวเตอร์ที่เป็นทางการดังนั้นโปรดอดทนกับฉัน ฉันต้องการทราบชนิดของสิ่งต่าง ๆ ในโลกแห่งความเป็นจริงที่อาจเกิดขึ้นได้หากคุณใช้MongoDB เวอร์ชันเก่าก่อนหน้า v4ซึ่งไม่สอดคล้องกับกรด สิ่งนี้ใช้กับฐานข้อมูลที่ไม่สอดคล้อง ACID ใด ๆ
ฉันเข้าใจว่า MongoDB สามารถดำเนินการปรมาณูได้แต่พวกเขาไม่ "สนับสนุนการล็อกแบบดั้งเดิมและการทำธุรกรรมที่ซับซ้อน" ส่วนใหญ่ด้วยเหตุผลด้านประสิทธิภาพ ฉันยังเข้าใจถึงความสำคัญของการทำธุรกรรมฐานข้อมูลและตัวอย่างของเวลาที่ฐานข้อมูลของคุณเป็นธนาคารและคุณกำลังอัปเดตหลายระเบียนที่จำเป็นต้องซิงค์คุณต้องการให้ธุรกรรมกลับไปสู่สถานะเริ่มต้นหากมี ไฟฟ้าดับดังนั้นเครดิตเท่ากับการซื้อ ฯลฯ
แต่เมื่อฉันได้รับการสนทนาเกี่ยวกับ MongoDB พวกเราที่ไม่ทราบรายละเอียดทางเทคนิคเกี่ยวกับวิธีการนำฐานข้อมูลไปใช้จริง ๆ
MongoDB นั้นเร็วกว่า MySQL และ Postgres แต่มีโอกาสเล็กน้อยเช่น 1 ในล้านที่ว่า "จะไม่บันทึกอย่างถูกต้อง"
ส่วน "ไม่บันทึกอย่างถูกต้อง" นั้นอ้างถึงความเข้าใจนี้: หากไฟดับในทันทีที่คุณเขียนถึง MongoDB มีโอกาสสำหรับบันทึกที่เฉพาะเจาะจง (บอกว่าคุณกำลังติดตามจำนวนหน้าที่มีการเปิดในเอกสารที่มี 10 แอตทริบิวต์ แต่ละรายการ) ว่าเอกสารอย่างใดอย่างหนึ่งเท่านั้นบันทึก 5 ของคุณลักษณะ ... ซึ่งหมายความว่าเมื่อเวลาผ่านไปเคาน์เตอร์นับจำนวนการดูหน้าเว็บของคุณจะ "ปิด" เล็กน้อย คุณจะไม่มีทางรู้ได้เลยว่าคุณรู้ว่ามันถูกต้อง 99.999% แต่ไม่ใช่ 100% นี่เป็นเพราะถ้าคุณไม่ได้ทำสิ่งนี้เป็นพิเศษในการปฏิบัติการปรมาณู mongodb การดำเนินการจะไม่รับประกันว่าจะเป็นอะตอม
ดังนั้นคำถามของฉันคืออะไรการตีความที่ถูกต้องของเวลาและทำไม MongoDB อาจไม่ "บันทึกอย่างถูกต้อง" คืออะไร? ส่วนใดของกรดที่ไม่พึงพอใจและภายใต้สถานการณ์ใดและคุณจะรู้ได้อย่างไรว่าข้อมูลของคุณปิดอยู่ที่ 0.001% สิ่งนี้ไม่สามารถแก้ไขได้หรือ ถ้าไม่เช่นนี้หมายความว่าคุณไม่ควรจัดเก็บสิ่งต่าง ๆ เช่นusers
ตารางของคุณใน MongoDB เพราะบันทึกอาจไม่ได้รับการบันทึก แต่แล้วอีกครั้งผู้ใช้ 1 / 1,000,000 คนอาจต้อง "ลองลงชื่อสมัครใช้อีกครั้ง" ใช่ไหม
ฉันแค่กำลังมองหารายการเมื่อ / ทำไมสิ่งลบเกิดขึ้นกับฐานข้อมูลที่ไม่สอดคล้องกับกรดเช่น MongoDB และถ้ามีวิธีแก้ปัญหามาตรฐาน (เช่นใช้งานพื้นหลังเพื่อล้างข้อมูลหรือใช้ SQL สำหรับสิ่งนี้เท่านั้น) .