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
。
相關文章
- 前端技能拾遺前端
- Linux拾遺Linux
- [MASM拾遺]OffsetASM
- Java Web 拾遺JavaWeb
- 物件導向拾遺物件
- 【java web】--Ajax拾遺JavaWeb
- C語言拾遺C語言
- golang拾遺:嵌入型別Golang型別
- docker拾遺-之再入坑Docker
- Unix廣告拾遺 by Dennis Ritchie
- Vue.js基礎拾遺Vue.js
- PHP 使用 Kafka 安裝拾遺PHPKafka
- AS拾遺--向PM學習二
- golang拾遺:指標和介面Golang指標
- 【演算法拾遺】階乘演算法
- 【Java學習筆記】拾遺Java筆記
- C++標準庫::拾遺C++
- 課時39:類與物件:拾遺物件
- Zepto核心模組之工具方法拾遺
- C#拾遺補闕【01】:字串C#字串
- 閉包拾遺 & 垃圾回收機制
- 【JS拾遺】函式的引數JS函式
- C++基礎::拾遺&&瑣碎C++
- 前端拾遺--javascript-ES6基礎前端JavaScript
- [Go]Go 語言基礎拾遺(一)Go
- MIT 6.824拾遺(一)聊聊basic-paxosMIT
- JAVA 拾遺 — CPU Cache 與快取行Java快取
- mysql 拾遺提高(函式、事務、索引)MySql函式索引
- 【演算法拾遺】最大公約數演算法
- 2萬字 | 前端基礎拾遺90問前端
- 基礎拾遺---委託,匿名函式,lambda函式
- [C#.NET拾遺補漏]01:字串操作C#字串
- JSON實戰拾遺之數字精度JSON
- JAVA拾遺 — JMH與8個測試陷阱Java
- React拾遺:Render Props及其使用場景React
- Git拾遺:一機多SSH-Key管理Git
- 【演算法拾遺】最大數和最小數演算法
- Objective-C 拾遺:從Heap and Stack到BlockObjectBloC