婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB 數據庫的命名、設計規范詳解

MongoDB 數據庫的命名、設計規范詳解

熱門標簽:外呼線路資源屬于電信業務嗎 智能外呼系統官網 呼和浩特外呼系統原理是什么 內蒙古營銷智能外呼系統哪個好 河南電話外呼系統招商 青白江400企業電話申請 crm外呼系統聯系方式 小裙科技電銷機器人怎樣 長沙電銷外呼防封卡是什么

MongoDB 數據庫的命名和設計也有一套規范。只不過,由于用的人不多,目前在業界還沒有形成權威的共識,今天根據我個人平時的一些經驗,總結了一些規范

第一部分,我們先說命名規范。

文檔

設計約束

UTF-8 字符

不能包含 \0 字符(空字符),這個字符標識建的結尾

. 和 $ 有特殊含義,需要避免

區分大小寫

鍵不能重復

鍵/值對有序

實踐約束

【強制】文檔中的key禁止使用_以外的特殊字符

【強制】key全部小寫,多個單詞可以下劃線分割

【強制】禁止使用數字打頭的key

【強制】禁止自定義_id(_id一般自增,使用無序id極有可能降低寫入性能)

【建議】相似類型文檔放在一個集合中,能大幅提高索引利用率

【建議】若業務上對于存放數據大小寫不敏感,則使用全部大寫/小寫存放(或者增加一個統一了大小寫寫的輔助字段)。 使用忽略大小寫的查詢極其耗費性能

【建議】不要存放太長的字符串

注意:MongoDB 索引僅支持 1KB 以內的字段

【強制】禁止使用數字打頭的key

【強制】禁止自定義_id(_id一般自增,使用無序id極有可能降低寫入性能)

【建議】相似類型文檔放在一個集合中,能大幅提高索引利用率

【建議】若業務上對于存放數據大小寫不敏感,則使用全部大寫/小寫存放(或者增加一個統一了大小寫寫的輔助字段)。 使用忽略大小寫的查詢極其耗費性能

【建議】不要存放太長的字符串

注意:MongoDB 索引僅支持 1KB 以內的字段

集合

設計約束

UTF-8 字符

不能是空字符串(“”)

不能包含 \0 字符(空字符),這個字符標識集合名的結束

不能以 “system.” 開頭,這是為系統保留的前綴

不在集合中包含字符 “$”

使用 “.” 來分隔不同命名空間的子集合,如一個博客可能包含兩個子集合,blog.posts和blog.authors,而blog本身可以不存在

實踐約束

【強制】禁止使用_以外的特殊字符

【強制】集合名稱不超過64字符

【強制】集合名稱全部小寫

【強制】禁止使用數字打頭的集合名,禁止使用system打頭的集合名(system為系統集合前綴)

【建議】為了避免庫級鎖帶來的問題,應盡量對寫入較大的集合使用“單庫單集合”的結構,所以對于新增業務應盡量創建新庫,而不是在現有庫中創建新集合

數據庫

設計約束

UTF-8 字符

不能是空字符串(“”)

基本上只能使用 ASCII 中的字母和數字。

不能含有 /、\、.、”、*、、>、:、|、?、$、(空格)、\0(空字符)

全部使用小寫。(支持大寫,不建議使用)

不超過64字節

存在保留數據庫如:admin、local、config

注意:數據庫名稱限制主要是由于數據庫最終會變成文件系統里的文件,而數據庫名就是相應的文件名,因此才有很多約束

實踐約束

【強制】數據庫名稱全部小寫

【強制】數據庫名稱不超過64字符

【強制】禁止使用_以外的特殊字符

【強制】禁止使用數字打頭的數據庫名

【強制】禁止與保留的數據庫重名,如: admin,local,config等

索引

【強制】索引名稱長度不超過128字節

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

【強制】創建組合索引時,盡量將數據基數大(唯一值多的數據)的字段放在組合索引前面

查詢

【建議】先做等值查詢,再做排序,再做范圍查詢

【建議】查詢中的某些 $ 操作符可能會導致性能低下,盡量避免

注意:

ne,ne, ne,ne,not,exists,exists, exists,exists,nin,$or,盡量在業務中不要使用

$exist:因為松散的文檔結構導致查詢必須遍歷每一個文檔

$ne:如果當取反的值為大多數,則會掃描整個索引

$not:可能會導致查詢優化器不知道應當使用哪個索引,所以會經常退化為全表掃描

$nin:全表掃描

$or:有多少個條件就會查詢多少次,最后合并結果集,所以盡可能的使用 $in

命名空間

將數據庫名添加到集合前,得到集合的完全限定名,稱為命名空間(namespace),如cms數據庫的blog.posts集合,命名空間即為:

cms.blog.posts。實際使用中命名空間長度不得超過100字節。

第二部分,設計規范。

數據庫設計規范

數據庫名約定為小寫。

數據庫名稱不能包含除'_'以外的特殊字符,例如:/ \ . “ $。

數據庫名稱最多為64個字符。

數據庫上線需經過DBA評審。

集合設計規范

集合名稱約定為小寫。

集合名稱不能包含除‘'以外的特殊字符字符;集合名稱禁止以system.開頭。

集合名稱的最大長度為64個字符,包括前綴的【database.】內容。

集合名稱的命名規則和MySQL數據庫表的命名規則相同。 a) 同一模塊的集合盡可能使用相同的前綴名,集合名稱盡可能表達用途。 b) 數據表 模塊標識>表標識> 例如:order_header , order_detail

c) 編碼表 base_模塊標識>表標識> d) 日志表 log模塊標識>表標識>

固定集合可以用于記錄日志,其插入數據更快,可以實現在插入數據時,淘汰最早的數據。固定集合需要顯式創建,指定Size的大小,還能夠指定文檔的數量。集合不管先達到哪一個限制,之后插入的新文檔都會把最老的文檔移出。

索引命名:idx構成索引的字段名>。如果字段名字過長,可采用字段縮寫。

文檔設計規范

Key的命名規范:不能以$開頭;不能包含.(點號)。

文檔中的_id鍵推薦使用默認值,禁止向_id中保存自定義的值。MongoDB文檔中都會有一個“_id”鍵,默認是個ObjectID對象(標識符中包含時間戳、機器ID、進程ID和計數器)。MongoDB在指定_id與不指定_id插入時速度相差很大,指定_id會減慢插入的速率。

推薦使用短字段名。與關系型數據庫不同,MongoDB集合中的每一個文檔都需要存儲字段名,長字段名會需要更多的存儲空間。

禁止在同一個集合字段中存儲多個數據類型的數據。

如若將日期類型選擇為string,不同的日期格式的文檔,不支持等值查詢,不支持范圍查詢。創建一個測試集合product,分別向集合插入Date:”20180425″和Date:”2018-04-25″兩筆數據。等值查詢、范圍查詢($gte, $lte)只能查到日期格式相同的數據,都為一筆數據。

MongoDB大小寫敏感,如果字段無需大小寫敏感,為了提高查詢效率,應盡量在統一了大小寫之后再插入到數據庫中。

MongoDB是文檔型數據庫,數據以BSON形式存儲在文檔中。MongoDB能夠支持最大16 MB的文檔大小。建議盡量不要存儲大型對象,將文檔控制在16 MB以內。

通過$size查詢數組大小,但是$size運算符不使用索引和限制準確匹配(不能指定$Sized 范圍)。因此,如果需要基于數組的大小執行查詢,可以在文檔設計中增加size屬性。例如在商品評價中,其他人可以對評價進行投票。為了阻止用戶多次投票和對有幫助的評論進行排序,所以,評價文檔設計是:在一個數組字段(voter_ids)保存了所有評論用戶的ID,而數組大小緩存在helpful_votes字段里。

分片鍵必須有索引,分片鍵大小限制為512byte,一旦集合已經分片,不可以直接修改分片鍵。不接受向已進行分片的collection上插入無分片鍵的文檔,也不支持空值插入。

片鍵的設計原則:

a) 所有的插入、更新、刪除將會均勻發送到集群的所有分片中。

b) 所有的查詢將會在集群中的所有分片中均勻地分發。

c) 所有的更新或者刪除操作將會只面向相關的分片,不會發送到一個沒有存儲被修改數據的分片上。

d) 一個查詢將不會被發送到沒有存儲被查詢數據的分片上。

連接規范

正確連接副本集,副本集提供了數據的保護、高可用和災難恢復的機制。如果主節點宕機,其中一個從節點會自動提升為從節點。

合理控制連接池的大小,限制連接數資源,可通過Connection String URL中的maxPoolSize 參數來配置連接池大小。Mongod 的服務模型是每個網絡連接由一個單獨的線程來處理,每個線程配置了1MB 的棧空間,當網絡連接數太多時,過多的線程會導致上下文切換開銷變大,同時內存開銷也會上漲。

復制集讀選項。默認情況下,復制集的所有讀請求都發到Primary,Driver可通過設置的Read Preference 來將讀請求路由到其他的節點。

a) Primary:默認規則,所有讀請求發到Primary。

b) PrimaryPreferred: Primary優先,如果Primary不可達,請求Secondary。

c) Secondary:所有的讀請求都發到Secondary。

d) SecondaryPreferred:Secondary優先,當所有的Secondary不可達時,請求Primary。

e) Nearest:讀請求發送到最近的可達節點上(通過ping探測得出最近的節點)。

操作規范

MongoDB數據庫更新文檔有兩種實現方式—文檔替換和目標字段更新。既可以完整替換現有的文檔,也可以使用更新操作符來修改某個字段。使用操作符,例如$set操作符和$push操作符,無論原始的大小,可以更新文檔里的指定字段。頻繁文檔更新的場景下,使用目標更新可以在序列化和傳輸數據上花費更少的時間,獲得更好的性能。

多文檔更新,在默認情況下,只會更新匹配查詢器的第一個文檔。要更新所有的匹配文檔,需要顯式指定多文檔更新模式–添加參數multi:true。

在文檔級別更新是原子性的,這意味著一條更新10個文檔的語句可能在更新3個文檔后由于某些原因失敗。應用程序必須根據自己的策略來處理這些失敗。

update結合upsert可以用來處理,當文檔存在時更新,文檔不存在時插入。如果查詢選擇器匹配,更新就正常執行;如果沒有匹配的文檔,就會插入新的文檔。新文檔的字段是查詢選擇器和目標更新文檔的邏輯合并。

復制集的數據安全及寫策略,Write Concern 用于控制寫入安全的級別。Write Concern 是一個性能和數據一致性的權衡,應根據業務場景進行設定。對于強一致性場景,建議w>1或者等于majority。

聚合框架是MongoDB的高級查詢語言,它允許通過轉換和合并由多個文檔中的數據來生成新的單個文檔里不存在的文檔信息。可以把MongoDB的聚合框架等價于SQL的Group By 語句。

更多關于MongoDB 數據庫的文章大家可以點擊下面的相關鏈接

您可能感興趣的文章:
  • MySQL和MongoDB設計實例對比分析
  • MongoDB進階之動態字段設計詳解
  • windows7下使用MongoDB實現倉儲設計
  • MongoDB實現問卷/考試設計功能
  • MongoDB設計方法以及技巧示例詳解

標簽:池州 黃石 楚雄 菏澤 呼倫貝爾 安順 白山 舟山

巨人網絡通訊聲明:本文標題《MongoDB 數據庫的命名、設計規范詳解》,本文關鍵詞  MongoDB,數據庫,的,命名,設計,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB 數據庫的命名、設計規范詳解》相關的同類信息!
  • 本頁收集關于MongoDB 數據庫的命名、設計規范詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产女人18毛片水真多成人如厕| 精品一区二区av| 欧美曰成人黄网| 亚洲一区二区三区国产| 91国内精品野花午夜精品| 色999日韩国产欧美一区二区| 精品sm在线观看| eeuss影院一区二区三区| 自拍偷拍亚洲欧美日韩| 国产不卡在线播放| 久久精品国产精品亚洲精品| 亚洲一区在线视频观看| 亚洲免费视频中文字幕| 国产精品久久一级| 中文字幕乱码一区二区免费| 久久亚洲综合色| 日韩一区二区三区在线视频| 91麻豆精品国产91| 99国产一区二区三精品乱码| 成人av影院在线| 一本在线高清不卡dvd| 欧美日韩国产一区二区三区地区| 国产成人免费视频精品含羞草妖精 | 亚洲精品日韩综合观看成人91| 亚洲v精品v日韩v欧美v专区 | 91麻豆精品国产91久久久久久| 日韩欧美自拍偷拍| 日韩福利视频网| 看国产成人h片视频| 亚洲国产精品一区二区久久| 久久99精品一区二区三区| 欧美理论片在线| 7777精品伊人久久久大香线蕉的 | 久久精品一区二区三区不卡 | 国产精品电影一区二区三区| 视频一区二区中文字幕| 国产一区二区三区四| 欧美mv日韩mv亚洲| 久久99国产精品成人| 成人免费毛片片v| 久久网站最新地址| 国产精品女主播在线观看| 久久久午夜电影| 国产一区免费电影| 国产精品你懂的在线| 91.com在线观看| 国产一区999| 一区二区三区日韩| 欧美成人性福生活免费看| 日韩美女视频在线| 成人精品小蝌蚪| 午夜精品一区二区三区三上悠亚| 国产精品久久毛片av大全日韩| 日韩一区二区电影| 国产成人在线影院| 亚洲精品一区二区三区四区高清 | 国产精品自在在线| 一区二区三区四区蜜桃| 欧美刺激午夜性久久久久久久| 在线观看中文字幕不卡| 欧美最猛黑人xxxxx猛交| 悠悠色在线精品| 亚洲色图在线视频| 欧美日韩国产美女| 国产精品久久毛片| 欧美激情在线观看视频免费| 91美女在线观看| 日韩一区二区三区四区| 国产成人三级在线观看| 久久奇米777| 欧美日韩国产在线观看| 香蕉av福利精品导航| 色综合色综合色综合色综合色综合| 奇米综合一区二区三区精品视频| 日韩高清不卡一区二区三区| 亚洲另类在线一区| 免费观看一级特黄欧美大片| fc2成人免费人成在线观看播放| 欧美午夜一区二区| 国产成人免费av在线| 久久精品视频网| 久久精品亚洲精品国产欧美 | 国产精品网曝门| 午夜国产精品影院在线观看| 国产大陆a不卡| av不卡在线观看| 欧美一区二区三区日韩视频| 欧美三级午夜理伦三级中视频| 久久久99久久| 国产一区欧美二区| 久久久久国产成人精品亚洲午夜| 91精品国产福利在线观看| 欧美日韩一区二区三区在线| 国产精品久线在线观看| 狠狠色综合色综合网络| 夜夜操天天操亚洲| 中文字幕电影一区| 国产精品亲子乱子伦xxxx裸| 欧美一区二区三区色| 欧美一区二区黄色| 亚洲第一福利一区| 国产98色在线|日韩| 国产99久久久精品| 在线成人免费观看| 国产精品久久久爽爽爽麻豆色哟哟| av男人天堂一区| 日韩精品一区二区三区蜜臀| 欧美三级韩国三级日本一级| 中文字幕乱码久久午夜不卡| 国产精品夫妻自拍| 色综合天天天天做夜夜夜夜做| 久久99久国产精品黄毛片色诱| 在线一区二区三区做爰视频网站| 久久9热精品视频| 日本不卡高清视频| 精品欧美黑人一区二区三区| 国产精品激情偷乱一区二区∴| 欧美高清你懂得| 亚洲天堂av一区| 欧美日韩国产精品自在自线| 综合中文字幕亚洲| 久久97超碰色| 国产精品一区二区免费不卡| 国产亚洲自拍一区| 国产成a人亚洲精品| 欧美日韩亚洲国产综合| 亚洲欧美乱综合| 亚洲视频狠狠干| 日韩午夜在线观看| 丁香一区二区三区| 日本免费在线视频不卡一不卡二| 18成人在线观看| 国产欧美日韩在线观看| 一区二区三区四区五区视频在线观看 | 色婷婷久久久综合中文字幕| 国产专区综合网| 欧美一个色资源| 国产日产欧美精品一区二区三区| 亚洲成av人片一区二区梦乃| 91免费精品国自产拍在线不卡| 精品久久久久久久久久久院品网| 亚洲国产精品麻豆| 欧美激情综合五月色丁香| 国产精品一区二区无线| 亚洲欧美另类图片小说| 欧美丝袜丝nylons| 成人福利电影精品一区二区在线观看| 一本色道久久综合亚洲91| 欧美理论电影在线| 日韩情涩欧美日韩视频| 国产精品色眯眯| 亚洲电影一区二区| 激情五月婷婷综合网| 色狠狠一区二区三区香蕉| 日韩你懂的在线观看| 丝袜美腿亚洲综合| 欧洲av一区二区嗯嗯嗯啊| 中文字幕二三区不卡| 国产在线日韩欧美| 欧美一级夜夜爽| 免费精品视频在线| 欧美一级在线视频| 免费高清不卡av| 日韩欧美在线影院| 男男gaygay亚洲| 精品黑人一区二区三区久久| 麻豆91在线看| 日韩一区二区电影在线| 美女视频网站黄色亚洲| 中文字幕一区二区三区在线观看| 免费人成精品欧美精品| 91视频精品在这里| 日本午夜一本久久久综合| 正在播放一区二区| 久久精品国产精品亚洲综合| 久久久久国产一区二区三区四区| 国产激情视频一区二区三区欧美 | 欧亚一区二区三区| 日韩精品一区第一页| 91精品国产色综合久久不卡电影| 极品少妇xxxx精品少妇| 久久夜色精品国产噜噜av| 91在线视频18| 精品午夜久久福利影院| 亚洲天堂网中文字| 欧美一区2区视频在线观看| 91丨九色丨蝌蚪富婆spa| 免费在线成人网| 一区二区成人在线| 久久亚洲综合色| 欧美日韩成人在线| 成人免费黄色大片| 狠狠色丁香婷综合久久| 亚洲欧洲日韩一区二区三区| 欧美老肥妇做.爰bbww| 国产一区二区伦理| 美腿丝袜亚洲三区| 亚洲成年人影院| 亚洲bt欧美bt精品777| 亚洲va欧美va国产va天堂影院|