mongoose 拾遺
mongoose 文件中提到:
When your application starts up, Mongoose automatically calls
ensureIndex
for each defined index in your schema. Mongoose will callensureIndex
for each index sequentially, and emit an 'index' event on the model when all theensureIndex
calls succeeded or when there was an error. While nice for development, it is recommended this behavior be disabled in production since index creation can cause a significant performance impact. Disable the behavior by setting theautoIndex
option of your schema tofalse
, or globally on the connection by setting the optionconfig.autoIndex
tofalse
.
在開發過程中可以使用 ensureIndex
,這樣每次改動資料庫結構時,自動生成對應的 Index 。而在生產環境中,因為 ensureIndex
操作會影響效能,所以建議禁止使用。
在沒有理解 MongoDB 的生成 Index 操作前,對上述解釋可能迷惑。因為如果禁止 ensureIndex
,那麼所有的 Index 不會生成,也就不會起效。但是注意這句話的前提條件是第一次建立 Collection 時。也就是說如果在建立 Collection 時,沒有禁止 ensureIndex
那麼相應的 Index 就會生成,以後即使禁止了 ensureIndex
,已經生成的 Index 依然有效。
總結: 在開發環境中啟用 ensureIndex
,並且建立 Collection,然後在生產環境中禁止 ensureIndex
。
相關文章
- Java Web 拾遺JavaWeb
- [MASM拾遺]OffsetASM
- 前端技能拾遺前端
- OrchardCore Headless建站拾遺
- 物件導向拾遺物件
- 容器化 Confluence 使用拾遺
- golang拾遺:嵌入型別Golang型別
- Confluence 容器化使用拾遺
- docker拾遺-之再入坑Docker
- golang拾遺:指標和介面Golang指標
- Vue.js基礎拾遺Vue.js
- PHP 使用 Kafka 安裝拾遺PHPKafka
- AS拾遺--向PM學習二
- C#拾遺補闕【01】:字串C#字串
- 課時39:類與物件:拾遺物件
- (零) React Native 專案開發拾遺React Native
- 前端拾遺--javascript-ES6基礎前端JavaScript
- [Go]Go 語言基礎拾遺(一)Go
- MIT 6.824拾遺(一)聊聊basic-paxosMIT
- 【105天】前端碎片知識拾遺00003前端
- 【106天】前端碎片知識拾遺00004前端
- JAVA 拾遺 — CPU Cache 與快取行Java快取
- Zepto核心模組之工具方法拾遺
- JSON實戰拾遺之數字精度JSON
- mysql 拾遺提高(函式、事務、索引)MySql函式索引
- React拾遺:Render Props及其使用場景React
- 基礎拾遺---委託,匿名函式,lambda函式
- [C#.NET拾遺補漏]01:字串操作C#字串
- 2萬字 | 前端基礎拾遺90問前端
- iOS拾遺—— Assets Catalogs 與 I/O 優化iOS優化
- JAVA拾遺 — JMH與8個測試陷阱Java
- Git拾遺:一機多SSH-Key管理Git
- golang拾遺:為什麼我們需要泛型Golang泛型
- Netty拾遺(七)——粘包與拆包問題Netty
- 【C++】 68_拾遺: 令人迷惑的寫法C++
- 老工具 fiddler-使用拾遺及一些技巧
- golang拾遺:實現一個不可複製型別Golang型別
- 初級程式設計師的SQL拾遺-②(表操作)程式設計師SQL
- golang拾遺:內建函式len的小知識Golang函式