Ben bir veritabanı uzmanı değilim ve resmi bir bilgisayar bilimi arka planım yok, bu yüzden bana katlan. AS4 uyumlu olmayan eski bir MongoDB sürümü v4'ten önce kullanırsanız olabilecek gerçek dünya olumsuz şeylerini bilmek istiyorum . Bu, herhangi bir ACID uyumlu olmayan veritabanı için geçerlidir.
MongoDB'nin Atomik İşlemler gerçekleştirebileceğini , ancak çoğunlukla performans nedeniyle "geleneksel kilitleme ve karmaşık işlemleri desteklemediklerini" biliyorum. Ayrıca veritabanı işlemlerinin önemini ve veritabanınızın bir banka için ne zaman olduğunu anlıyorum ve hepsinin senkronize olması gereken birkaç kayıt güncellediğinizde, bir işlem varsa ilk işleme geri dönmesini istiyorsunuz. elektrik kesintisi böylece kredi satın alma, vb eşittir.
Ancak MongoDB hakkında konuştuğumda, veritabanlarının gerçekte nasıl uygulandığına dair teknik detayları bilmeyen bizler:
MongoDB, MySQL ve Postgres'den çok daha hızlıdır, ancak milyonda 1 gibi "doğru bir şekilde tasarruf etmeyecek" gibi küçük bir şansı vardır.
"Doğru şekilde kaydedilmeyecek" kısım bu anlayışa atıfta bulunuyorsa: MongoDB'ye yazdığınız anda bir elektrik kesintisi varsa, belirli bir kayıt için bir şans vardır (10 özelliğe sahip belgelerdeki sayfa görüntülemelerini izlediğinizi varsayalım) her biri), dokümanlardan birinin özelliklerden yalnızca 5 tanesini kaydettiğini gösterir… Bu, sayfa görüntüleme sayaçlarınızın zamanla "hafifçe" kapalı olacağı anlamına gelir. Ne kadar olduğunu asla bilemezsiniz,% 99.999 doğru olacaklarını biliyorsunuz, ancak% 100 değil. Bunun nedeni, bunu özellikle bir mongodb atomik işlemi yapmadığınız sürece, işlemin atomik olduğu garanti edilmez.
Benim sorum şu: MongoDB'nin ne zaman ve neden "doğru şekilde kaydedilemeyeceğinin" doğru yorumu nedir? Hangi ACID bölümlerini karşılamıyor ve hangi koşullar altında ve verilerinizin% 0,001'inin kapandığını nasıl bilebilirsiniz? Bu bir şekilde düzeltilemez mi? Değilse, bu users
MongoDB'de masanız gibi şeyleri saklamamanız gerektiği anlamına gelir , çünkü bir kayıt kaydedilmeyebilir. Ama sonra tekrar, 1 / 1.000.000 kullanıcının "tekrar kaydolmayı denemesi" gerekebilir, değil mi?
Ben sadece ne zaman / neden MongoDB gibi bir ACID uyumlu olmayan veritabanı ile negatif şeyler olur ve ideal bir standart arıyorum (ideal bir veri temizlemek için bir arka plan iş çalıştırmak gibi, ya da sadece bunun için SQL kullanmak, vb.) .