Jawaban Berrie Winata dari Pertanyaan SQL vs NoSQL: Siapa yang lebih baik? di SETO.CO.ID

Lihat jawaban selengkapnya di SETO.CO.ID

NoSQL tidak disarankan untuk transaksi berharga (Misal perbankan) ? [toggle] Bisa, tapi sebaiknya untuk data yang tidak crucial (Selain transaksi dengan nilai besar). Mengapa ? NoSQL (misal MongoDB) cepat, karena mengorbankan feature yg biasanya ada di database SQL. MongoDB hanya ACID compliance pada level document:

Setiap update pada sebuah dokumen:

  1. Atomic: Selesai secara menyeluruh/tidak.
  2. Consistent: Tidak ada user yang akan melihat data yang ter-update sebagian.
  3. Isolated: Tidak akan ada user yang mendapatkan data yg noisy/dirty.
  4. Durable: Nah ini agak tricky kalau di NoSQL, tapi masih doable.
  5. Tapi MongoDB tidak mendukung transactions — yaitu multiple update yg bisa di cancel (rolled back) dan ACID compliance.

Untuk meningkatkan performa insert, MongoDB tidak langsung write ke disk, ia simpan dulu di (virtual) memory (hence butuh more memory). Bayangkan user insert/update data, lalu ada pesan “insert/update success” , tapi kemudian ada failure (misal mati listrik/meledak smile emoticon ). maka data yang baru saja dimasukkan sebenarnya belum tersimpan di disk (hence durable issue). Tapi tentu saja ada NoSQL yg respect ACID transactions (misal CouchDB). Semua ada +/-nya masing-masing. Jadi sebagai developer harus benar-benar memperhatikan kebutuhan.

Tulisan ini dipost melalui Aplikasi Seto di tanya jawab seputar Database, Sistem Admin, Programming, dan MySQL.

Advertisements