MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Basis data NoSQL - kandidat yang baik untuk pemrosesan log/agregasi dan rollup?

Solusi NoSQL yang berbeda memecahkan masalah yang berbeda untuk penggunaan yang berbeda - jadi pertama-tama hal terbaik yang harus dilakukan adalah melihat masalah Anda dan memecahnya

  • Anda menulis berat ke penyimpanan, oleh karena itu kecepatan tulis penting bagi Anda
  • Anda ingin melakukan operasi agregasi pada data tersebut dan mendapatkan hasil yang mudah dikueri
  • Kecepatan membaca tidak begitu penting dari suara, setidaknya tidak dalam "aplikasi web harus benar-benar responsif untuk jutaan orang"
  • Saya tidak tahu apakah Anda memerlukan kueri dinamis atau tidak

Mari kita lihat Couch, Mongo, dan Raven dalam level yang sangat tinggi, dengan cara yang digeneralisasi

Gagak

  • Tulis cepat
  • Kueri cepat (akhirnya konsisten, telah dihitung sebelumnya, agregasi melalui peta/pengurangan)
  • Kueri dinamis dimungkinkan, tetapi tidak terlalu sesuai dengan kasus penggunaan Anda, karena kemungkinan besar Anda akan membuat kueri berdasarkan tanggal, dll

Mongo

  • Tulisan yang sangat cepat (Menurut saya berbahaya, karena mati listrik berarti kehilangan data;-))
  • Pembacaan lambat (relatif), agregasi melalui peta/pengurangan, tidak dihitung sebelumnya
  • Kueri dinamis hanyalah apa yang Anda_lakukan, tetapi Anda mungkin harus menentukan indeks pada kolom Anda jika Anda menginginkan kinerja apa pun pada jenis data ini

Sofa

  • Tulis cepat
  • Pembacaan cepat (Dihitung sebelumnya, tetapi diperbarui hanya saat Anda membaca (IIRC)
  • Kueri dinamis tidak dimungkinkan, semua telah ditentukan sebelumnya melalui peta atau fungsi peta/pengurangan

Jadi, pada dasarnya - apakah Anda memerlukan kueri dinamis untuk data semacam ini? Apakah kecepatan baca sangat penting bagi Anda? Jika Anda membutuhkan kueri dinamis maka Anda akan menginginkan Raven atau Mongo (Untuk hal semacam ini, Sofa mungkin bukan yang Anda cari).

FWIW, satu-satunya kasus penggunaan Mongo menurut saya adalah untuk logging, jadi Anda mungkin memiliki jawaban di sana.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara membaca koleksi yang bergantung pada koleksi lain di Meteor

  2. Bandingkan tanggal (moment.js) di MongoDB

  3. MONGO hanya mendapatkan nama dokumen tetapi tidak seluruh dokumen

  4. Bagaimana cara menemukan koleksi kode dengan regex dan kriteria kompleks menggunakan driver Java MongoDB?

  5. Mengapa jenis mongo ini tidak berfungsi di PHP?