Mongo规范
1.【強制】集合中的 key 禁止使用任何 "_"(下劃線)以外的特殊字符。
2.【強制】盡量將同樣類型的文檔存放在一個集合中,將不同類型的文檔分散在不同的集合中;相同類型的文檔能夠大幅度提高索引利用率,如果文檔混雜存放則可能會出現查詢經常需要全表掃描的情況;
3.【建議】禁止使用_id,如:向_id中寫入自定義內容;
說明:MongoDB的表與InnoDB相似,都是索引組織表,數據內容跟在主鍵后,而_id是MongoDB中的默認主鍵,一旦_id的值為非自增,當數據量達到一定程度之后,每一次寫入都可能導致主鍵的二叉樹大幅度調整,這將是一個代價極大的寫入, 所以寫入就會隨著數據量的增大而下降,所以一定不要在_id中寫入自定義的內容。
4.【建議】盡量不要讓數組字段成為查詢條件;
5.【建議】如果字段較大,應盡量壓縮存放;
不要存放太長的字符串,如果這個字段為查詢條件,那么確保該字段的值不超過1KB;MongoDB的索引僅支持1K以內的字段,如果你存入的數據長度超過1K,那么它將無法被索引
6.【建議】盡量存放統一了大小寫后的數據 ;
7.【強制】MongoDB 的組合索引使用策略與 MySQL 一致,遵循"最左原則";
8.【強制】索引名稱長度不要超過 128 字符;
9.【強制】應盡量綜合評估查詢場景,通過評估盡可能的將單列索引并入組合索引以降低所以數量,結合7,8點;
10.【建議】優先使用覆蓋索引;
11.【建議】創建組合索引的時候,應評估索引中包含的字段,盡量將數據基數大(唯一值多的數據)的字段放在組合索引的前面;
12.【建議】MongoDB 支持 TTL 索引,該索引能夠按你的需要自動刪除XXX秒之前的數據并會盡量選擇在業務低峰期執行刪除操作;看業務是否需要這一類型索引;
13.【建議】在數據量較大的時候,MongoDB 索引的創建是一個緩慢的過程,所以應當在上線前或數據量變得很大前盡量評估,按需創建會用到的索引;
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: .NET RulesEngine(规则引
- 下一篇: 大厂出品免费图标资源站