Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kapan menggunakan MongoDB atau sistem database berorientasi dokumen lainnya?

Dalam NoSQL:Seandainya Semudah Itu , penulis menulis tentang MongoDB:

MongoDB bukan penyimpanan kunci/nilai, ini lebih dari itu. Ini juga bukan RDBMS. Saya belum pernah menggunakan MongoDB dalam produksi, tetapi saya telah menggunakannya sedikit untuk membangun aplikasi pengujian dan ini adalah kit yang sangat keren. Tampaknya sangat berkinerja dan memiliki, atau akan segera, toleransi kesalahan dan auto-sharding (alias itu akan diskalakan). Saya pikir Mongo mungkin yang paling dekat dengan pengganti RDBMS yang pernah saya lihat sejauh ini. Ini tidak akan berfungsi untuk semua kumpulan data dan pola akses, tetapi dibuat untuk hal-hal CRUD khas Anda. Menyimpan apa yang pada dasarnya adalah hash besar, dan dapat memilih salah satu kunci itu, adalah tujuan kebanyakan orang menggunakan database relasional. Jika DB Anda adalah 3NF dan Anda tidak melakukan penggabungan apa pun (Anda hanya memilih sekelompok tabel dan menyatukan semua objek, AKA apa yang dilakukan kebanyakan orang di aplikasi web), MongoDB mungkin akan melakukannya Anda.

Kemudian, kesimpulannya:

Hal yang perlu ditunjukkan adalah jika Anda menahan diri untuk membuat sesuatu yang luar biasa karena Anda tidak dapat memilih database, Anda salah melakukannya. Jika Anda tahu mysql, gunakan saja. Optimalkan saat Anda benar-benar membutuhkannya. Gunakan seperti toko k/v, gunakan seperti rdbms, tapi demi Tuhan, buat aplikasi pembunuh Anda! Semua ini tidak penting bagi sebagian besar aplikasi. Facebook masih banyak menggunakan MySQL. Wikipedia menggunakan MySQL, banyak. FriendFeed menggunakan MySQL, banyak. NoSQL adalah alat yang hebat, tetapi tentu saja tidak akan menjadi keunggulan kompetitif Anda, itu tidak akan membuat aplikasi Anda panas, dan yang terpenting, pengguna Anda tidak akan peduli dengan semua ini.

Apa yang akan saya gunakan untuk membangun aplikasi saya berikutnya? Mungkin Postgres. Apakah saya akan menggunakan NoSQL? Mungkin. Saya mungkin juga menggunakan Hadoop dan Hive. Saya mungkin menyimpan semuanya dalam file datar. Mungkin saya akan mulai meretas Maglev. Saya akan menggunakan apa pun yang terbaik untuk pekerjaan itu. Jika saya memerlukan pelaporan, saya tidak akan menggunakan NoSQL apa pun. Jika saya perlu caching, saya mungkin akan menggunakan Tokyo Tyrant. Jika saya membutuhkan ACIDity, saya tidak akan menggunakan NoSQL. Jika saya membutuhkan banyak penghitung, saya akan menggunakan Redis. Jika saya membutuhkan transaksi, saya akan menggunakan Postgres. Jika saya memiliki banyak sekali jenis dokumen, saya mungkin akan menggunakan Mongo. Jika saya perlu menulis 1 miliar objek sehari, saya mungkin akan menggunakan Voldemort. Jika saya membutuhkan pencarian teks lengkap, saya mungkin akan menggunakan Solr. Jika saya membutuhkan pencarian teks lengkap dari data volatil, saya mungkin akan menggunakan Sphinx.

Saya suka artikel ini, saya merasa sangat informatif, memberikan gambaran yang baik tentang lanskap dan hype NoSQL. Namun, dan itulah bagian terpenting, sangat membantu jika Anda bertanya pada diri sendiri pertanyaan yang tepat ketika harus memilih antara RDBMS dan NoSQL. Layak dibaca IMHO.

Tautan alternatif ke artikel



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prosedur tersimpan MySQL vs fungsi, mana yang akan saya gunakan kapan?

  2. Memilih semua kolom yang dimulai dengan XXX menggunakan karakter pengganti?

  3. Alternatif Meja Kerja MySQL - Manajemen Konfigurasi ClusterControl

  4. Kesalahan MySQL 1170 (42000):Kolom BLOB/TEXT Digunakan dalam Spesifikasi Kunci Tanpa Panjang Kunci

  5. Bisakah kolom tabel dengan Kunci Asing menjadi NULL?