mongodb指南(翻譯)(二十一) – developer zone – 索引(五)在後台建立索引

來源:互聯網
上載者:User

預設情況下,ensureIndex()是阻塞型操作,並會暫停資料庫上所有進行中的其他動作,直到建立索引完成。但是,在高於或等於版本1.3.2的mongodb中,提供了可選的後台建立索引的選項。

要在後台建立索引,增加background:true選項。例如:

> db.things.ensureIndex({x:1}, {background:true});
> db.things.ensureIndex({name:1}, {background:true, unique:true,
... dropDups:true});

當後台模式啟動時,其他的操作,包含寫,在建立索引期間不會被阻塞。該索引在建立完成前不會被應用到查詢中去。

儘管該操作是“後台”類型意味著其他動作可以並發執行,但是該命令在建立完成前不會立即返回到shell提示符。要同時執行其他動作,可以另外開啟一個mongo shell執行個體。

需要注意的是,後台模式建立索引是新增加的方法,它比預設的前端模式要慢:需要更多的時間來建立索引。

在建立索引過程中,可以通過db.currentOp()命令查看到該操作依舊在進行中(顯示為對system.indexes的插入操作)。你可以使用db.killOp()來終止建立過程。

在建立索引過程中,該索引在system.indexes中是可見的,但是建立完成前它不會被用到查詢操作中。

注意:

  • 每個集合在同一時刻只允許建立一個索引。
  • 一些管理操作,如repairDatabase,不允許在後台建立索引期間使用。
  • (應用到生產環境,應使用)v1.4或者更高版本。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.