簡體   English   中英

1000 萬個條目的 MongoDB 種子腳本需要 30 分鍾

[英]MongoDB seed script for 10million entries takes 30 minutes

我有一個正在進行的項目,我必須為一個包含 1000 萬行隨機行的數據庫做種子,我已經成功完成了。 然而,它需要大約 30 分鍾才能完成,這是預期的,但我知道它可能會更快。 我想讓它運行得更快,並想辦法讓它在 10 分鍾內生成 1000 萬個隨機條目,最好同時仍然使用 mongodb/mongoose。 這是我當前的種子文件,有什么讓它運行得更快的提示嗎? 第一次在這里發帖,僅供參考。 謝謝!

我使用“節點數據庫/seed.js”在終端中運行這個文件。

 const db = require("./index.js"); const mongoose = require("mongoose"); const faker = require("faker"); const productSchema = mongoose.Schema({ product_name: String, image: String, price: String }); let Product = mongoose.model("Product", productSchema); async function seed() { for (let i = 0; i < 10000000; i++) { let name = faker.commerce.productName(); let image = faker.image.imageUrl(); let price = faker.commerce.price(); let item = new Product({ product_name: `${name}`, image: `${image}`, price: `$${price}` }); await item .save() .then(success => {}) .catch(err => {}); } } seed();

您可以批量創建可能有 100 萬條記錄,並且可以使用 insertMany 函數批量插入數據庫。

使用InsertMany

插入/更新在所有類型的數據庫中總是需要時間。 盡量減少插入次數。

每 1000 次插入一些內容或循環一次

Model.insertMany(arr, function(error, docs) {});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM