Jadual Kandungan
Apa itu Asid?
Urus Niaga Multi-Dokumen: Skop Sokongan
Cara Menggunakan Transaksi (Contoh)
Sekatan penggunaan transaksi dan langkah berjaga -jaga
Dokumen tunggal Atomicity: Pilihan pertama untuk pembangunan harian
Meringkaskan
Rumah pangkalan data MongoDB Urus niaga asid di mongodb

Urus niaga asid di mongodb

Jul 30, 2025 am 12:02 AM
mongodb ACID事务

Ya, MongoDB menyokong urus niaga asid. 1. Ia menyokong operasi asid tunggal dari versi 4.0, dan urus niaga multi-dokumen dari 4.2, termasuk set replika dan kluster shard. 2. Urus niaga multi-dokumen perlu dimulakan melalui sesi. Semua operasi mesti diluluskan dalam sesi. Cuba Catch Handles Commits atau Rollbacks, dan akhirnya memanggil EndSession untuk melepaskan sumber. 3. Urus niaga ini mempunyai had tamat masa 60 saat, dan overhead prestasi adalah tinggi. Terutama urus niaga silang memerlukan koordinasi mongos, yang harus mengelakkan penggunaan jangka panjang atau frekuensi tinggi; 4. Eval, MapReduce dan arahan lain dilumpuhkan dalam transaksi, dan membaca dan menulis perhatian dan membaca keutamaan mesti ditetapkan pada tahap urus niaga; 5. Adalah disyorkan untuk menggunakan operasi atom tunggal terlebih dahulu, dan menggunakan urus niaga melalui model data tertanam untuk mengurangkan keperluan urus niaga untuk meningkatkan prestasi dan skalabiliti; 6. Ia sesuai untuk senario konsistensi yang kuat seperti pemindahan dan potongan inventori, tetapi masa urus niaga harus dipendekkan sebanyak mungkin untuk mengelakkan penyumbatan. Keupayaan asid MongoDB dapat memenuhi kebanyakan senario, dan kunci adalah memilih kaedah penggunaan mengikut perniagaan yang munasabah.

Urus niaga asid di mongodb

MongoDB menyokong urus niaga asid, tetapi pelaksanaannya berbeza daripada pangkalan data relasi tradisional, terutamanya dalam persekitaran yang diedarkan dengan batasan penggunaan dan amalan terbaik. Berikut adalah beberapa perkara utama untuk menggambarkan urus niaga asid di MongoDB.

Urus niaga asid di mongodb

Apa itu Asid?

Asid adalah empat sifat utama urus niaga pangkalan data:

  • A TOMICITY: Semua operasi dalam transaksi sama ada berjaya atau gagal.
  • C OnSistency: Sebelum dan selepas urus niaga dilaksanakan, pangkalan data berada dalam keadaan yang konsisten.
  • I Solation: Urus niaga serentak tidak mengganggu satu sama lain.
  • D urability: Setelah transaksi dilakukan, hasilnya kekal.

Di MongoDB, bermula dari versi 4.0, operasi tunggal dokumen adalah asid secara lalai . Bermula dalam versi 4.2, MongoDB menyokong urus niaga asid multi-dokumen , termasuk merentasi pelbagai koleksi, pangkalan data, dan juga kelompok sharded (secara beransur-ansur disokong dari 4.2).

Urus niaga asid di mongodb

Urus Niaga Multi-Dokumen: Skop Sokongan

Transaksi multi-dokumen MongoDB menyokong senario berikut:

  • Set replika : disokong dari 4.0.
  • Cluster Sharded : Disokong sejak 4.2, tetapi dengan lebih banyak batasan dan pertimbangan prestasi.

Nota: Urus niaga silang memerlukan penyelaras (mongos) untuk mengambil bahagian, yang mempunyai overhead prestasi yang lebih besar. Adalah disyorkan untuk mengelakkan penggunaan frekuensi tinggi sebanyak mungkin.

Urus niaga asid di mongodb

Cara Menggunakan Transaksi (Contoh)

Berikut adalah contoh transaksi berbilang dokumen menggunakan pemandu Node.js:

 const session = client.startSession ();
session.startTransaction ();

Cuba {
  const db = client.db ('bank');

  // Mengurangkan baki tiga db.collection ('akaun').
    {name: 'Zhangsan', Baki: {$ gte: 100}},
    {$ inc: {baki: -100}},
    {sesi}
  );

  // Meningkatkan baki li si menanti db.collection ('accounts'). UpdateOne (
    {name: 'lisi'},
    {$ inc: {baki: 100}},
    {sesi}
  );

  menunggu session.CommitTransaction ();
  console.log ('pemindahan berjaya');
} menangkap (ralat) {
  menunggu session.AbortTransaction ();
  Console.error ('Transaksi gagal, dilancarkan kembali', ralat);
} akhirnya {
  menunggu session.endSession ();
}

Mata Utama:

  • session mesti digunakan untuk memulakan transaksi.
  • Semua operasi mesti diluluskan dalam parameter session .
  • Gunakan try-catch untuk mengendalikan pengecualian dan gulung kembali.
  • Akhirnya, endSession() dipanggil untuk melepaskan sumber.

Sekatan penggunaan transaksi dan langkah berjaga -jaga

  • Overhead prestasi tinggi : Urus niaga akan dikunci, dan urus niaga jangka panjang boleh menyebabkan penyumbatan.
  • Had tamat masa : Secara lalai, urus niaga mesti diselesaikan dalam masa 60 saat (boleh diselaraskan melalui transactionLifetimeLimitSeconds , tetapi tidak disyorkan untuk terlalu lama).
  • Sesetengah arahan tidak boleh digunakan dalam pelbagai transaksi shard : seperti eval , mapReduce , dll.
  • ReadConcern, WriteConCern, dan ReadPreener perlu ditetapkan pada tahap urus niaga dan tidak boleh ditentukan secara berasingan dalam operasi.

Cadangan:

  • Memendekkan masa pelaksanaan transaksi sebanyak mungkin.
  • Elakkan melakukan permintaan rangkaian atau pengiraan yang memakan masa dalam urus niaga.
  • Keutamaan diberikan kepada operasi atom dokumen tunggal, dan tiada urus niaga boleh digunakan.

Dokumen tunggal Atomicity: Pilihan pertama untuk pembangunan harian

Kemas kini dokumen tunggal MongoDB secara semulajadi menyokong atomik. Contohnya:

 db.accounts.updateOne (
  {Nama: "Zhangsan", Baki: {$ gte: 50}},
  {$ inc: {baki: -50}, $ push: {history: "Paid 50"}}
)

Operasi ini adalah atom: sama ada semua berjaya atau gagal, dan tidak akan ada keadaan di mana hanya wang yang ditolak dan sejarah tidak direkodkan.

Cadangan Reka Bentuk : Meletakkan data yang relevan dalam satu dokumen melalui dokumen atau tatasusunan tertanam boleh mengelakkan urus niaga berbilang dokumen, meningkatkan prestasi dan skalabiliti.


Meringkaskan

  • MongoDB menyokong urus niaga asid, termasuk transaksi multi-dokumen (set replika dan kluster shard).
  • Transaksi sesuai untuk operasi jangka pendek dengan keperluan konsistensi yang kuat , seperti pemindahan kewangan, potongan inventori, dll.
  • Dalam perkembangan harian, lebih suka menggunakan pemodelan data dengan operasi atom-dokumen yang munasabah untuk mengelakkan urus niaga.
  • Berhati -hati apabila menggunakan urus niaga dalam kelompok sharded, perhatikan prestasi dan had masa tamat.

Pada asasnya, keupayaan asid MongoDB cukup untuk mengatasi kebanyakan senario. Kuncinya ialah memilih kaedah penggunaan mengikut keperluan perniagaan.

Atas ialah kandungan terperinci Urus niaga asid di mongodb. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1525
276
Pelbagai cara untuk mengemas kini dokumen dalam koleksi MongoDB Pelbagai cara untuk mengemas kini dokumen dalam koleksi MongoDB Jun 04, 2025 pm 10:30 PM

Kaedah untuk mengemas kini dokumen di MongoDB termasuk: 1. Gunakan kaedah UpdateOne dan UpdateMany untuk melakukan kemas kini asas; 2. Gunakan pengendali seperti $ set, $ inc, dan $ push untuk melakukan kemas kini lanjutan. Dengan kaedah dan pengendali ini, anda boleh mengurus dan mengemas kini data dengan cekap di MongoDB.

Cara Melihat Semua Pangkalan Data di MongoDB Cara Melihat Semua Pangkalan Data di MongoDB Jun 04, 2025 pm 10:42 PM

Cara untuk melihat semua pangkalan data di MongoDB adalah memasuki perintah "showdbs". 1. Perintah ini hanya memaparkan pangkalan data yang tidak kosong. 2. Anda boleh menukar pangkalan data melalui arahan "Gunakan" dan memasukkan data untuk menjadikannya paparan. 3. Perhatikan pangkalan data dalaman seperti "tempatan" dan "config". 4. Apabila menggunakan pemandu, anda perlu menggunakan kaedah "ListDatabases ()" untuk mendapatkan maklumat terperinci. 5. Perintah "db.stats ()" boleh melihat statistik pangkalan data terperinci.

Tetapan arahan dan parameter untuk membuat koleksi di MongoDB Tetapan arahan dan parameter untuk membuat koleksi di MongoDB May 15, 2025 pm 11:12 PM

Perintah untuk membuat koleksi di MongoDB adalah db.CreateCollection (nama, pilihan). Langkah -langkah khusus termasuk: 1. Gunakan perintah asas db.createCollection ("mycollection") untuk membuat koleksi; 2. Set Parameter Pilihan, seperti saiz, saiz, maksimum, penyimpanan, pengesahan, pengesahan dan pengesahan, seperti db.createCollection ("MycappedCollection

Perintah operasi untuk menyusun dokumen dalam koleksi MongoDB Perintah operasi untuk menyusun dokumen dalam koleksi MongoDB Jun 04, 2025 pm 10:27 PM

Di MongoDB, anda boleh menggunakan kaedah jenis () untuk menyusun dokumen dalam koleksi. 1. Penggunaan Asas: Susun dengan menentukan bidang dan perintah penyortiran (1 adalah menaik dan -1 turun), seperti db.products.find (). Sort ({price: 1}). 2. Penggunaan Lanjutan: Ia boleh disusun mengikut pelbagai bidang, seperti db.products.find (). Sort ({kategori: 1, harga: -1}). 3. Pengoptimuman Prestasi: Menggunakan pengindeksan, mengelakkan penyortiran dan penyortiran paging dapat meningkatkan kecekapan, seperti db.products.createindex ({price: 1}) dan db.products.f

Apakah gridfs, dan kapan ia harus digunakan untuk menyimpan fail binari yang besar di MongoDB? Apakah gridfs, dan kapan ia harus digunakan untuk menyimpan fail binari yang besar di MongoDB? Jun 06, 2025 am 10:50 AM

Gridfs adalah alat di MongoDB untuk menyimpan dan mengambil fail dengan had saiz lebih daripada 16Mbbson. 1. Ia membahagikan fail ke dalam blok 255kb, menyimpannya dalam koleksi Fs.Chunks, dan menjimatkan metadata dalam koleksi Fs.Files. 2. Situasi yang sesuai termasuk: lebih daripada 16MB fail, keperluan untuk menguruskan fail dan metadata seragam, akses ke bahagian tertentu fail, dan menggunakan MongoDB tanpa memperkenalkan sistem storan luaran. 3. Gridfs disimpan secara automatik dalam ketulan apabila memuat naik, menyusun semula fail mengikut urutan semasa membaca, dan menyokong metadata tersuai dan penyimpanan pelbagai versi. 4. Penyelesaian alternatif termasuk: menyimpan laluan fail di MongoDB dan sebenarnya menyimpannya dalam sistem fail,

Perintah dan Langkah berjaga -jaga untuk membuat pangkalan data di MongoDB Perintah dan Langkah berjaga -jaga untuk membuat pangkalan data di MongoDB Jun 04, 2025 pm 10:39 PM

Tidak ada perintah "createTatabase" yang jelas di MongoDB, pangkalan data dibuat apabila data pertama dimasukkan. 1. Gunakan "usemydb" untuk beralih ke pangkalan data. 2. Masukkan dokumen, seperti "db.users.insertone ({name: 'Johndoe', umur: 30})". Nota termasuk: Pangkalan data dan koleksi dibuat apabila data pertama dimasukkan, dengan sekatan yang ketat pada nama, dan pengurusan kebenaran, konsistensi data, pengoptimuman prestasi dan pemulihan sandaran harus dipertimbangkan.

Kaedah pelaksanaan untuk penomboran dokumen pertanyaan dalam koleksi MongoDB Kaedah pelaksanaan untuk penomboran dokumen pertanyaan dalam koleksi MongoDB May 15, 2025 pm 11:00 PM

Di MongoDB, pertanyaan penomboran boleh dilaksanakan melalui kaedah SKIP () dan had (). 1. Gunakan skip (n) untuk melangkau dokumen N pertama, had (m) untuk mengembalikan dokumen m. 2. Semasa pengoptimuman, pertanyaan pelbagai boleh digunakan dan bukannya melangkau () dan hasilnya boleh di -cache untuk meningkatkan prestasi.

Perintah operasi untuk menamakan semula koleksi MongoDB Perintah operasi untuk menamakan semula koleksi MongoDB Jun 04, 2025 pm 10:36 PM

Sebab -sebab untuk menamakan semula koleksi di MongoDB termasuk refactoring kod dan pengoptimuman prestasi dengan menggunakan perintah renamecollection. Nota termasuk: 1. Mengunci pangkalan data, 2. Cadangan Amalan Terbaik: 1. Pilih Operasi Puncak Rendah, 2. Koleksi penamaan semula memerlukan pengendalian yang teliti untuk memastikan prestasi sistem dan kestabilan.

See all articles