Banyak masalah tidak mempunyai hanya satu penyelesaian, bermakna anda boleh menggunakan teknik ini atau teknik itu. Tujuan pembelajaran boleh menjadi apa sahaja yang anda mahukan, tetapi dalam persekitaran pengeluaran sebenar adalah sangat disyorkan untuk memudahkan kerumitan anda dan menyelesaikan masalah dengan cara paling mudah yang paling anda kenali. Fikirkan sama ada perlu menggunakan 2 pangkalan data untuk menyelesaikan masalah yang sama.
Saya tertanya-tanya adakah lebih pantas jika bahagian pertanyaan lagu disoal daripada MongoDB?
Mungkin, mungkin tidak. Ia bergantung pada jumlah data yang anda miliki, sama ada reka bentuk model data menggunakan MongoDB adalah munasabah, dan... berapa banyak sumber perkakasan yang anda rancang untuk melabur di dalamnya. NoSQL lebih memfokuskan pada pengembangan mendatar, yang bermaksud bahawa ia masih boleh mengekalkan kelajuan pertanyaan pada tahap tertentu walaupun jumlah data terus meningkat. Dari pengalaman peribadi, jika terdapat berpuluh-puluh juta atau ratusan juta data, MongoDB mungkin benar-benar menunjukkan kelebihannya. Sebelum data mencapai tahap ini, saya rasa tidak banyak keperluan untuk memperkenalkan pangkalan data tambahan jika ia hanya untuk kelajuan. Berbanding dengan faedah yang dibawanya kepada anda dan kerumitan yang ditimbulkannya, hanya boleh dikatakan ia tidak kos efektif.
Apabila anda menambah atau memadam maklumat lagu pada masa hadapan, anda perlu menyegerakkannya dengan MongoDB pada masa yang sama, bukan?
Masalah penyegerakan data bergantung pada seberapa tinggi keperluan anda untuk "konsistensi". Dalam kes konsistensi yang kukuh, ini adalah transaksi yang diedarkan, yang mungkin bukan perkara yang baik untuk prestasi dan bertentangan dengan niat asal anda untuk mempercepatkan transaksi. Jika anda mempertimbangkan konsistensi akhirnya, anda boleh melihat pelbagai alatan MySQL ke MongoDB ETL, seperti Pentaho. Sudah tentu, adalah mungkin untuk melaksanakannya melalui kod sendiri, tetapi tidak mudah untuk mempertimbangkan pelbagai isu toleransi kesalahan.
Pertama sekali, anda perlu tahu dengan jelas bahawa MongoDB ialah pelaksanaan khusus NoSQL Tidak seperti Redis, struktur data yang disimpannya adalah berasaskan dokumen.
Kedua, kelajuan pertanyaan sukar untuk membuat keputusan sewenang-wenangnya berdasarkan perbezaan antara produk atau enjin Ia perlu ditimbang berdasarkan penggunaan sebenar, bukan itu sahaja, maklumat apa yang disimpan dan cara menyimpannya juga memerlukan sedikit analisis ( Jika anda hanya berlatih, prosesnya boleh menjadi lebih mudah).
Saya hanya belajar MySQL sebelum ini Kerana ketidakpastian atau kerumitan struktur beberapa data yang disimpan, jika saya ingin menggunakan MySQL sahaja untuk menyimpannya, saya perlu menggunakan banyak jadual dan menyediakan kunci asing, jadi saya juga belajar MongoDB untuk menyelesaikan keperluan .
Apa yang saya lakukan ialah latihan buku, yang agak serupa dengan lagu dari perspektif tertentu. Sebagai contoh, mungkin terdapat lebih daripada satu pengarang buku Jika anda menggunakan MySQL, kaedah yang mudah adalah dengan menggunakan pembatas untuk menyimpan berbilang pengarang dalam satu bidang akan ada masalah tertentu dalam pertanyaan kemudian (kerumitan syarat penghakiman dan juga prestasi ), dan lagu A juga mungkin mempunyai lebih daripada seorang penyanyi.
Amalan saya ialah MySQL + MongoDB Sudah tentu, ia juga boleh dicapai hanya menggunakan MongoDB, tetapi saya fikir keperluan khusus harus dianalisis dengan sewajarnya. Amalan komprehensif saya masih diteruskan dan saya boleh berkomunikasi pada bila-bila masa, salah satu idea yang disediakan di atas.
Saya rasa anda mungkin memerlukan fungsi seperti mencari lagu berdasarkan lirik. Elasticsearch yang disebutkan di atas adalah sangat baik, dan terdapat satu lagi pilihan, sphinx, yang juga sangat baik untuk carian teks penuh.
Banyak masalah tidak mempunyai hanya satu penyelesaian, bermakna anda boleh menggunakan teknik ini atau teknik itu. Tujuan pembelajaran boleh menjadi apa sahaja yang anda mahukan, tetapi dalam persekitaran pengeluaran sebenar adalah sangat disyorkan untuk memudahkan kerumitan anda dan menyelesaikan masalah dengan cara paling mudah yang paling anda kenali. Fikirkan sama ada perlu menggunakan 2 pangkalan data untuk menyelesaikan masalah yang sama.
Mungkin, mungkin tidak. Ia bergantung pada jumlah data yang anda miliki, sama ada reka bentuk model data menggunakan MongoDB adalah munasabah, dan... berapa banyak sumber perkakasan yang anda rancang untuk melabur di dalamnya. NoSQL lebih memfokuskan pada pengembangan mendatar, yang bermaksud bahawa ia masih boleh mengekalkan kelajuan pertanyaan pada tahap tertentu walaupun jumlah data terus meningkat. Dari pengalaman peribadi, jika terdapat berpuluh-puluh juta atau ratusan juta data, MongoDB mungkin benar-benar menunjukkan kelebihannya. Sebelum data mencapai tahap ini, saya rasa tidak banyak keperluan untuk memperkenalkan pangkalan data tambahan jika ia hanya untuk kelajuan. Berbanding dengan faedah yang dibawanya kepada anda dan kerumitan yang ditimbulkannya, hanya boleh dikatakan ia tidak kos efektif.
Masalah penyegerakan data bergantung pada seberapa tinggi keperluan anda untuk "konsistensi". Dalam kes konsistensi yang kukuh, ini adalah transaksi yang diedarkan, yang mungkin bukan perkara yang baik untuk prestasi dan bertentangan dengan niat asal anda untuk mempercepatkan transaksi. Jika anda mempertimbangkan konsistensi akhirnya, anda boleh melihat pelbagai alatan MySQL ke MongoDB ETL, seperti Pentaho. Sudah tentu, adalah mungkin untuk melaksanakannya melalui kod sendiri, tetapi tidak mudah untuk mempertimbangkan pelbagai isu toleransi kesalahan.
Pertama sekali, anda perlu tahu dengan jelas bahawa MongoDB ialah pelaksanaan khusus NoSQL Tidak seperti Redis, struktur data yang disimpannya adalah berasaskan dokumen.
Kedua, kelajuan pertanyaan sukar untuk membuat keputusan sewenang-wenangnya berdasarkan perbezaan antara produk atau enjin Ia perlu ditimbang berdasarkan penggunaan sebenar, bukan itu sahaja, maklumat apa yang disimpan dan cara menyimpannya juga memerlukan sedikit analisis ( Jika anda hanya berlatih, prosesnya boleh menjadi lebih mudah).
Saya hanya belajar MySQL sebelum ini Kerana ketidakpastian atau kerumitan struktur beberapa data yang disimpan, jika saya ingin menggunakan MySQL sahaja untuk menyimpannya, saya perlu menggunakan banyak jadual dan menyediakan kunci asing, jadi saya juga belajar MongoDB untuk menyelesaikan keperluan .
Apa yang saya lakukan ialah latihan buku, yang agak serupa dengan lagu dari perspektif tertentu. Sebagai contoh, mungkin terdapat lebih daripada satu pengarang buku Jika anda menggunakan MySQL, kaedah yang mudah adalah dengan menggunakan pembatas untuk menyimpan berbilang pengarang dalam satu bidang akan ada masalah tertentu dalam pertanyaan kemudian (kerumitan syarat penghakiman dan juga prestasi ), dan lagu A juga mungkin mempunyai lebih daripada seorang penyanyi.
Amalan saya ialah MySQL + MongoDB Sudah tentu, ia juga boleh dicapai hanya menggunakan MongoDB, tetapi saya fikir keperluan khusus harus dianalisis dengan sewajarnya. Amalan komprehensif saya masih diteruskan dan saya boleh berkomunikasi pada bila-bila masa, salah satu idea yang disediakan di atas.
Elasticsearch melakukan pertanyaan dengan lebih pantas tanpa menjejaskan prestasi mysql
Saya rasa anda mungkin memerlukan fungsi seperti mencari lagu berdasarkan lirik. Elasticsearch yang disebutkan di atas adalah sangat baik, dan terdapat satu lagi pilihan, sphinx, yang juga sangat baik untuk carian teks penuh.