SQL (MySQL) vs NoSQL (CouchDB) [ditutup]

126

Saya sedang merancang aplikasi yang sangat skalabel yang harus menyimpan banyak data. Misalnya saja akan menyimpan banyak tentang pengguna dan kemudian hal-hal seperti banyak pesan mereka, komentar dll

Apakah ada yang punya pemikiran atau petunjuk tentang ini?

christophmccann
sumber
3
Gah, CW. Dan saya berharap untuk mendapatkan beberapa perwakilan nyata dan kredit jalanan di sini. :-)
Franci Penov
1
dapatkah Anda menjelaskan sedikit lebih banyak tentang kumpulan data Anda?
mikeal
4
Saya berharap ini tidak harus ditutup. Pertanyaan-pertanyaan ini penting untuk ditanyakan, tetapi untuk beberapa alasan mereka tidak termasuk dalam SO.
Neil Chowdhury

Jawaban:

191

Berikut adalah kutipan dari posting blog terbaru dari Dare Obasanjo .

Database SQL seperti transmisi otomatis dan database NoSQL seperti transmisi manual. Setelah Anda beralih ke NoSQL, Anda menjadi bertanggung jawab atas banyak pekerjaan yang sistem tangani secara otomatis dalam sistem basis data relasional. Mirip dengan apa yang terjadi ketika Anda memilih manual daripada transmisi otomatis. Kedua, NoSQL memungkinkan Anda untuk meningkatkan kinerja sistem dengan menghilangkan banyak pemeriksaan integritas yang dilakukan oleh basis data relasional dari tingkat basis data. Sekali lagi, ini mirip dengan bagaimana Anda bisa mendapatkan lebih banyak kinerja dari mobil Anda dengan mengendarai transmisi manual versus kendaraan transmisi otomatis.

Namun kesamaan yang paling menonjol adalah bahwa seperti kebanyakan dari kita tidak dapat benar-benar mengambil keuntungan dari manfaat kendaraan transmisi manual karena mayoritas mengemudi kita duduk di lalu lintas dalam perjalanan ke dan dari tempat kerja, ada kenyataan pahit yang serupa karena sebagian besar situs tidak dalam skala Google atau Facebook dan karenanya tidak memerlukan Bigtable atau Cassandra.

Yang saya dapat tambahkan hanya bahwa beralih dari MySQL, di mana Anda memiliki setidaknya beberapa pengalaman, ke CouchDB, di mana Anda tidak memiliki pengalaman, berarti Anda harus berurusan dengan set masalah yang sama sekali baru dan mempelajari berbagai konsep dan praktik terbaik. Meskipun dengan sendirinya ini luar biasa (saya bermain di rumah dengan MongoDB dan sangat menyukainya), itu akan menjadi biaya yang perlu Anda hitung ketika memperkirakan pekerjaan untuk proyek itu, dan membawa risiko yang tidak diketahui sambil menjanjikan manfaat yang tidak diketahui. Akan sangat sulit untuk menilai apakah Anda dapat mengerjakan proyek tepat waktu dan dengan kualitas yang Anda inginkan / butuhkan untuk berhasil, jika itu didasarkan pada teknologi yang tidak Anda ketahui.

Sekarang, jika Anda memiliki tim yang ahli di bidang NoSQL, maka tentu saja perhatikan baik-baik. Tetapi tanpa keahlian dalam tim, jangan langsung menggunakan NoSQL untuk proyek komersial baru.

Pembaruan : Hanya untuk melemparkan bensin ke api terbuka yang Anda mulai, berikut adalah dua artikel menarik dari orang-orang di kamp SQL. :-)

Saya Tidak Bisa Menunggu NoSQL Mati (artikel asli hilang, berikut salinannya )
Melawan Pola Pikir NoSQL, Meskipun Ini Bukan
Pembaruan Sepotong anti-NoSQL : Baiklah, berikut ini adalah artikel menarik tentang
NoSQL.

Franci Penov
sumber
2
Proses penskalaan solusi SQL adalah proses menghapus fitur dan hubungan. Jadi saya tidak berpikir ini adalah penilaian yang sepenuhnya adil. Juga, saya tidak akan kelompok NoSQL database bersama seperti ini, Cassanda misalnya hanya berfokus pada skala up sementara CouchDB berkaitan dengan skala api bawah dan membuatnya mudah digunakan dan upaya untuk memungkinkan bahwa api untuk skala sejauh sebagai mungkin.
mikeal
Mungkinkah ini tautan ke kutipan? 25hoursaday.com/weblog/2010/03/29/…
edosoft
Ah, ya memang. Aku rindu dia membuatnya menjadi posting blog publik juga. Saya akan memperbarui pos.
Franci Penov
1
Terima kasih untuk kirimannya! Tautan "Saya Tidak Bisa Menunggu NoSQL Sampai Mati" tidak berfungsi untuk saya, Anda mungkin ingin memeriksanya.
kbpontius
"Anda telah memperdagangkan daftar keterbatasan dan kutil yang telah disebutkan dengan baik untuk daftar keterbatasan dan kutil yang lebih baru dan kurang dipahami" - Saya Tidak Bisa Menunggu NoSQL Sampai Mati
Yarin
3

Sepertinya hanya solusi nyata hari ini yang berputar di sekitar scaling out atau sharding. Semua database modern (NoSQL dan juga NewSQL) mendukung penskalaan horizontal langsung, di lapisan database, tanpa perlu aplikasi memiliki kode sharding atau sesuatu.

Sayangnya cukup, untuk MySQL yang sudah tua dan terpercaya, sharding tidak disediakan "out of the box". ScaleBase (penafian: Saya bekerja di sana) adalah pembuat solusi penimbangan skala yang lengkap, sebuah "mesin sharding otomatis" jika Anda mau. ScaleBae menganalisis data dan aliran SQL Anda, membagi data di seluruh node DB, dan agregat dalam runtime - jadi Anda tidak perlu melakukannya! Dan unduhan gratis.

Jangan salah paham, NoSQL bagus, mereka baru, baru lebih banyak pilihan dan pilihan selalu bagus !! Tetapi memilih NoSQL hadir dengan harga, pastikan Anda dapat membayarnya ...

Anda dapat melihat di sini beberapa data lebih lanjut tentang MySQL, NoSQL ...: http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding

Harapan itu membantu.

Doron Levari
sumber
0

Salah satu opsi terbaik adalah menggunakan MongoDB (NOSql dB) yang mendukung skalabilitas. Menyimpan data dalam jumlah besar tidak lain adalah data besar dalam bentuk dokumen, tidak seperti baris dan tabel dalam sql. untuk memastikan jaminan data yang memelihara beberapa server yang memiliki server db primer sebagai pangkalan. Bahasa independen. Fleksibel untuk digunakan

Kiranmai Harshi
sumber
Anda harus mencadangkan pendapat Anda ke "terbaik" karena Couchbase, Cassandra, AeroSpike, dll, dan semua basis data yang mendukung fitur yang Anda sebutkan.
OneCricketeer