MongoDB數據庫規範

數據庫

  • 【強制】數據庫命名禁止使用任何 _(下劃線)外的特殊字符,禁止使用數字打頭的庫名,數據庫名最多爲 64字符。

    • 反例: 3pan / db_$test /
  • 【推薦】數據庫名全部使用小寫

    • 反例:Parents PARENTS

集合

  • 【強制】mongodb集合命名全部小寫,禁止使用任何 _(下劃線) 以外的特殊字符,禁止使用任何 _(下劃線) 以外的特殊字符,集合名稱最多爲 64字符
  • 正例:user
  • 反例:user$
  • 【推薦】同一模塊的集合儘可能使用相同的前綴名,即<模塊標識>_<表標識>,集合名稱儘可能表達用途
  • 正例:
    • 數據表:order_header, order_detail
    • 編碼表: base_test
    • 日誌表: log_app

文檔

  • 【強制】文檔中的 key 禁止使用任何 _(下劃線)以外的特殊字符,禁止使用 _id ,如:

    • 正例: user_id
    • 反例:向 _id 中寫入自定義內容中寫入自定義內容
  • 【推薦】儘量不要讓數組字段成爲查詢條件

  • 【推薦】儘量存放統一了大小寫後的數據

  • 【推薦】內聯文檔不能超過三層

  • 【強制】同一集合下的文檔同一字段類型必須一致

  • 【強制】字段命名採用駝峯命名

  • 【強制】字段類型爲布爾值的字段命名以is開頭

  • 【推薦】“父引用” 字段以_開頭

  • 【推薦】引用字段類型爲ObjectId,子引用數組元素類型爲ObjectId

索引

  • 【強制】索引名稱長度不要超過 128 字符

  • 【強制】創建索引時使用後臺模式,避免鎖死

    • Mongo鎖有一種臨時放棄機制,當出現需要等待慢速IO讀寫數據時,可以先臨時放棄,等IO完成之後重新獲取鎖。
    • 如果在前臺構建會創建一個(優化策略:不會臨時放棄)的寫鎖,如果集合的數據量很大,建索引通常會很耗時
  • 【推薦】儘可能的將單列索引併入組合索引以降低數量

    • 索引越少,更改文檔時需要維護的索引就越少,效率就越高
  • 【推薦】儘量遵循最左前綴原則

    • 索引{“a”:1, “b”:1}, 可以匹配的查詢
    • { “a”: “hello”, “b”: “world”}
    • {“b”:“world”, “a”:“hello”}
    • {“a”: “hello”}
  • 【推薦】創建組合索引時將唯一值多的字段放在前面

  • 【強制】禁止在數組字段上創建索引

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章