Saya bukan ahli basis data dan tidak memiliki latar belakang ilmu komputer formal, jadi bersabarlah. Saya ingin mengetahui hal-hal negatif dunia nyata yang dapat terjadi jika Anda menggunakan versi MongoDB lama sebelum v4 , yang tidak sesuai dengan ACID . Ini berlaku untuk semua basis data ACID yang tidak patuh.
Saya mengerti bahwa MongoDB dapat melakukan Operasi Atom , tetapi mereka tidak "mendukung penguncian tradisional dan transaksi kompleks", kebanyakan karena alasan kinerja. Saya juga memahami pentingnya transaksi basis data, dan contoh kapan basis data Anda untuk bank, dan Anda memperbarui beberapa catatan yang semuanya harus disinkronkan, Anda ingin transaksi kembali ke keadaan awal jika ada pemadaman listrik sehingga kredit sama dengan pembelian, dll.
Tetapi ketika saya masuk ke percakapan tentang MongoDB, kita yang tidak tahu detail teknis tentang bagaimana database sebenarnya dilaksanakan mulai melemparkan pernyataan seperti:
MongoDB jauh lebih cepat daripada MySQL dan Postgres, tetapi ada kemungkinan kecil, seperti 1 dalam sejuta, "itu tidak akan disimpan dengan benar".
Bagian "tidak akan disimpan dengan benar" mengacu pada pemahaman ini: Jika ada pemadaman listrik tepat saat Anda menulis ke MongoDB, ada peluang untuk catatan tertentu (misalnya Anda melacak tampilan halaman dalam dokumen dengan 10 atribut masing-masing), bahwa salah satu dokumen hanya menyimpan 5 atribut ... yang berarti seiring waktu penghitung tampilan halaman Anda akan "sedikit" mati. Anda tidak akan pernah tahu seberapa banyak, Anda tahu mereka akan menjadi 99,999% benar, tetapi tidak 100%. Ini karena, kecuali jika Anda secara khusus menjadikan ini operasi atom mongodb , operasi tersebut tidak dijamin sebagai atom.
Jadi pertanyaan saya adalah, apa interpretasi yang benar tentang kapan dan mengapa MongoDB mungkin tidak "menyelamatkan dengan benar"? Bagian mana dari ACID yang tidak memuaskan, dan dalam keadaan apa, dan bagaimana Anda tahu kapan 0,001% data Anda tidak aktif? Tidak bisakah ini diperbaiki? Jika tidak, ini tampaknya berarti Anda tidak boleh menyimpan hal-hal seperti users
meja Anda di MongoDB, karena catatan mungkin tidak menyimpan. Tetapi sekali lagi, bahwa pengguna 1 / 1.000.000 mungkin hanya perlu "mencoba mendaftar lagi", bukan?
Saya hanya mencari mungkin daftar kapan / mengapa hal-hal negatif terjadi dengan database tidak patuh ACID seperti MongoDB, dan idealnya jika ada solusi standar (seperti menjalankan pekerjaan latar belakang untuk membersihkan data, atau hanya menggunakan SQL untuk ini, dll.) .