Saya terjebak di antara dua database NoSQL ini.
Dalam proyek saya, saya akan membuat basis data di dalam basis data. Sebagai contoh, saya butuh solusi untuk membuat tabel dinamis.
Jadi pengguna dapat membuat tabel dengan kolom dan baris. Saya pikir MongoDB atau CouchDB akan bagus untuk ini, tapi saya tidak yakin yang mana. Saya juga perlu paging yang efisien juga.
mongodb
performance
comparison
couchdb
nosql
Luke101
sumber
sumber
Jawaban:
Dari C, A & P (Konsistensi, Ketersediaan & Toleransi partisi) mana 2 yang lebih penting bagi Anda? Referensi cepat, Panduan Visual Ke Sistem NoSQL
Sebuah posting blog, Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j perbandingan memiliki skenario ' Terbaik digunakan ' untuk setiap database NoSQL dibandingkan. Mengutip tautan,
Perbandingan terkini (Feb 2012) dan lebih komprehensif oleh Riyad Kalla,
Sebuah posting blog (Okt 2011) oleh seseorang yang mencoba keduanya, A MongoDB Guy Learns CouchDB mengomentari halaman CouchDB yang tidak berguna.
Benchmark tanggal (Juni 2009) oleh Kristina Chodorow ( bagian dari tim di belakang MongoDB ),
Saya akan memilih MongoDB.
Semoga ini bisa membantu.
sumber
Jawaban di atas memperumit cerita.
Itu dia. Kecuali Anda membutuhkan kemampuan CouchDB (luar biasa) untuk mereplikasi ke perangkat seluler dan desktop, MongoDB memiliki keunggulan kinerja, komunitas, dan peralatan saat ini.
sumber
Pertanyaan yang sangat lama tetapi ada di atas Google dan saya tidak begitu suka jawaban yang saya lihat jadi ini milik saya.
Ada lebih banyak hal untuk Couchdb daripada kemampuan untuk mengembangkan CouchApps. Kebanyakan orang menggunakan CouchDb dalam arsitektur web 3-tier klasik.
Dalam praktiknya, faktor penentu bagi kebanyakan orang adalah kenyataan bahwa MongoDb memungkinkan kueri ad-hoc dengan sintaks seperti SQL sementara CouchDb tidak (Anda harus membuat peta / mengurangi tampilan yang membuat sebagian orang mati meskipun membuat tampilan ini ramah pengembangan aplikasi cepat - tidak ada hubungannya dengan prosedur tersimpan)
Untuk mengatasi poin yang muncul dalam jawaban yang diterima: CouchDb memiliki sistem versi yang bagus, tetapi itu tidak berarti bahwa itu hanya cocok (atau lebih cocok) untuk tempat-tempat di mana versi penting. Juga, couchdb sangat ramah terhadap penulisan karena sifatnya yang hanya menambahkan (operasi menulis kembali dalam waktu singkat sambil menjamin bahwa tidak ada data yang akan hilang).
Satu hal yang sangat penting yang tidak disebutkan oleh siapa pun adalah fakta bahwa CouchDb bergantung pada indeks b-tree. Ini berarti apakah Anda memiliki 1 "baris" atau 20 miliar, waktu kueri akan selalu tetap di bawah 10 ms. Ini adalah pengubah permainan yang menjadikan CouchDb basis data latensi rendah dan ramah-baca, dan ini benar-benar tidak boleh diabaikan.
Agar adil dan lengkap, keuntungan yang dimiliki MongoDb atas CouchDb adalah perkakas dan pemasaran. Mereka memiliki alat warga negara kelas satu untuk semua bahasa dan platform utama yang mempermudah penggunaannya dan ini ditambahkan ke permintaan adhoc mereka membuat transisi dari SQL menjadi lebih mudah.
CouchDb tidak memiliki tingkat perkakas ini - meskipun ada banyak perpustakaan yang tersedia saat ini - tetapi CouchDb diekspos sebagai HTTP API dan karena itu cukup mudah untuk membuat pembungkus dalam bahasa favorit Anda untuk berbicara dengannya. Saya pribadi menyukai pendekatan ini karena menghindari mengasapi dan memungkinkan Anda untuk hanya mengambil apa yang Anda inginkan (prinsip pemisahan antarmuka).
Jadi saya akan mengatakan menggunakan satu atau yang lain sebagian besar adalah masalah kenyamanan dan preferensi dengan paradigma mereka. Pendekatan CouchDb "pas", untuk orang-orang tertentu, tetapi jika setelah mempelajari tentang fitur basis data (secara lengkap) panduan resmi ) Anda tidak memiliki momen "neraka ya", Anda mungkin harus melanjutkan.
Saya tidak ingin menggunakan CouchDb jika Anda hanya ingin menggunakan "alat yang tepat untuk pekerjaan yang tepat". karena Anda akan tahu bahwa Anda tidak bisa menggunakannya begitu saja dan Anda akan marah dan menulis posting blog seperti "Di mana bergabung di CouchDb?" dan "Di mana manajemen transaksi?". Memang Couchdb adalah - secara paradoks - sangat transparan tetapi pada saat yang sama membutuhkan perubahan paradigma dan perubahan dalam cara Anda mendekati masalah untuk benar-benar bersinar (dan benar-benar berfungsi).
Tetapi begitu Anda selesai melakukannya, itu akan bermanfaat. Saya pribadi membutuhkan alasan yang sangat kuat atau pemecah masalah besar pada suatu proyek untuk memilih database lain, tetapi sejauh ini saya belum pernah bertemu.
sumber
CouchDb relies on b-tree indexes. This means that whether you have 1 "row" or 20 billions, the querying time will always remain below 10ms.
Bukankah ini berlaku untuk hampir semua database? Dengan cara ini ungkapan ini menyatakan sebaliknya.Ajukan pertanyaan ini sendiri? Dan Anda akan memutuskan pilihan DB Anda.
sumber
Saya merangkum jawaban yang ditemukan dalam artikel itu:
http://www.quora.com/How-does-MongoDB-compare-to-CouchDB-What-are-the-keuntungan-dan-kekurangan-of- masing-masing
MongoDB: Permintaan yang lebih baik, penyimpanan data di BSON (akses lebih cepat), konsistensi data yang lebih baik, beberapa koleksi
CouchDB: Replikasi yang lebih baik, dengan replikasi master dan master dan resolusi konflik, penyimpanan data dalam JSON (dapat dibaca oleh manusia, akses yang lebih baik melalui layanan REST), kueri melalui pengurangan peta.
Jadi kesimpulannya, MongoDB lebih cepat, CouchDB lebih aman.
Juga: http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb
sumber
Waspadai masalah dengan indeks unik yang jarang di MongoDB. Saya telah memukulnya dan itu sangat rumit untuk diselesaikan.
Masalahnya adalah ini - Anda memiliki bidang, yang unik jika ada dan Anda ingin menemukan semua objek di mana bidang tersebut tidak ada. Cara jarang indeks unik diimplementasikan dalam Mongo adalah bahwa objek di mana bidang yang hilang tidak ada dalam indeks sama sekali - mereka tidak dapat diambil oleh kueri di bidang itu -
{$exists: false}
hanya tidak berfungsi.Satu-satunya solusi yang saya buat adalah memiliki keluarga nol khusus nilai, di mana nilai kosong diterjemahkan ke awalan khusus (seperti null :) yang disatukan dengan uuid. Ini benar-benar sakit kepala, karena kita harus berhati-hati mengubah ke / dari nilai kosong saat menulis / quering / membaca. Gangguan besar.
Saya tidak pernah menggunakan eksekusi javascript sisi server di MongoDB (tidak disarankan pula) dan peta / pengurangannya memiliki kinerja yang buruk ketika hanya ada satu simpul Mongo. Karena semua alasan ini saya sekarang mempertimbangkan untuk memeriksa CouchDB, mungkin lebih cocok untuk skenario khusus saya.
BTW, jika ada yang tahu tautan ke masalah Mongo masing-masing yang menggambarkan masalah indeks unik yang jarang - silakan bagikan.
sumber
Saya yakin Anda bisa dengan Mongo (lebih akrab dengannya), dan cukup yakin Anda bisa dengan sofa juga.
Keduanya berorientasi pada dokumen (berbasis JSON) sehingga tidak akan ada "kolom" melainkan bidang dalam dokumen - tetapi keduanya bisa sepenuhnya dinamis.
Mereka berdua melakukannya, Anda mungkin ingin melihat faktor-faktor lain yang digunakan: fitur-fitur lain yang Anda pedulikan, popularitas, dll. Google wawasan, posting pekerjaan sesungguhnya.com akan menjadi cara untuk melihat popularitas.
Anda bisa mencobanya, saya pikir Anda harus dapat menjalankan mongo dalam 5 menit.
sumber