<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## MongoDB 相關概念 ### 1.1 業務場景 傳統的關系型數據庫 (比如 MySQL), 在數據操作的”三高”需求以及對應的 Web 2.0 網站需求面前, 會有”力不從心”的感覺 所謂的三高需求: **高并發, 高性能, 高可用**, 簡稱三高 * High Performance: 對數據庫的高并發讀寫的要求 * High Storage: 對海量數據的高效率存儲和訪問的需求 * High Scalability && High Available: 對數據的高擴展性和高可用性的需求 **而 MongoDB 可以應對三高需求** 具體的應用場景: * 社交場景, 使用 MongoDB 存儲存儲用戶信息, 以及用戶發表的朋友圈信息, 通過地理位置索引實現附近的人, 地點等功能. * 游戲場景, 使用 MongoDB 存儲游戲用戶信息, 用戶的裝備, 積分等直接以內嵌文檔的形式存儲, 方便查詢, 高效率存儲和訪問. * 物流場景, 使用 MongoDB 存儲訂單信息, 訂單狀態在運送過程中會不斷更新, 以 MongoDB 內嵌數組的形式來存儲, 一次查詢就能將訂單所有的變更讀取出來. * 物聯網場景, 使用 MongoDB 存儲所有接入的智能設備信息, 以及設備匯報的日志信息, 并對這些信息進行多維度的分析. * 視頻直播, 使用 MongoDB 存儲用戶信息, 點贊互動信息等. 這些應用場景中, 數據操作方面的共同點有: 1. 數據量大 2. 寫入操作頻繁 3. 價值較低的數據, 對**事務性**要求不高 對于這樣的數據, 更適合用 MongoDB 來實現數據存儲 那么我們**什么時候選擇 MongoDB 呢?** 除了架構選型上, 除了上述三個特點之外, 還要考慮下面這些問題: * 應用不需要事務及復雜 JOIN 支持 * 新應用, 需求會變, 數據模型無法確定, 想快速迭代開發 * 應用需要 2000 - 3000 以上的讀寫QPS(更高也可以) * 應用需要 TB 甚至 PB 級別數據存儲 * 應用發展迅速, 需要能快速水平擴展 * 應用要求存儲的數據不丟失 * 應用需要`99.999%`高可用 * 應用需要大量的地理位置查詢, 文本查詢 如果上述有1個符合, 可以考慮 MongoDB, 2個及以上的符合, 選擇 MongoDB 絕不會后悔. > 如果用MySQL呢? > > 相對MySQL, 可以以更低的成本解決問題(包括學習, 開發, 運維等成本) ### 1.2 MongoDB 簡介 > MongoDB是一個開源, 高性能, 無模式的文檔型數據庫, 當初的設計就是用于簡化開發和方便擴展, 是NoSQL數據庫產品中的一種.是最 像關系型數據庫(MySQL)的非關系型數據庫. 它支持的數據結構非常松散, 是一種類似于 JSON 的 格式叫BSON, 所以它既可以存儲比較復雜的數據類型, 又相當的靈活. MongoDB中的記錄是一個文檔, 它是一個由字段和值對(?eld:value)組成的數據結構.MongoDB文檔類似于JSON對象, 即一個文檔認 為就是一個對象.字段的數據類型是字符型, 它的值除了使用基本的一些類型外, 還可以包括其他文檔, 普通數組和文檔數組. **“最像關系型數據庫的 NoSQL 數據庫”**. MongoDB 中的記錄是一個文檔, 是一個 key-value pair. 字段的數據類型是字符型, 值除了使用基本的一些類型以外, 還包括其它文檔, 普通數組以及文檔數組 ![](https://img.kancloud.cn/dd/e9/dde971a4d70bb290b1b4afd420cf141f_1280x720.png) ![](https://img.kancloud.cn/38/15/381549752be069937e62c56e9d35f2a8_675x259.png) MongoDB 數據模型是面向文檔的, 所謂文檔就是一種類似于 JSON 的結構, 簡單理解 MongoDB 這個數據庫中存在的是各種各樣的 JSON(BSON) * 數據庫 (database) * 數據庫是一個倉庫, 存儲集合 (collection) * 集合 (collection) * 類似于數組, 在集合中存放文檔 * 文檔 (document) * 文檔型數據庫的最小單位, 通常情況, 我們存儲和操作的內容都是文檔 在 MongoDB 中, 數據庫和集合都不需要手動創建, 當我們創建文檔時, 如果文檔所在的集合或者數據庫不存在,**則會自動創建數據庫或者集合** ### 數據庫 (databases) 管理語法 | 操作 | 語法 | | --- | --- | | 查看所有數據庫 | `show dbs;`或`show databases;` | | 查看當前數據庫 | `db;` | | 切換到某數據庫 (**若數據庫不存在則創建數據庫**) | `use <db_name>;` | | 刪除當前數據庫 | `db.dropDatabase();` | ### 集合 (collection) 管理語法 | 操作 | 語法 | | --- | --- | | 查看所有集合 | `show collections;` | | 創建集合 | `db.createCollection("<collection_name>");` | | 刪除集合 | `db.<collection_name>.drop()` | ### 1.3. 數據模型 ![](https://img.kancloud.cn/09/92/0992ef9c37e5540e8ac6d8450c7f7f4b_667x490.png) ### 1.4 MongoDB 的特點 #### 1.4.1 高性能 MongoDB 提供高性能的數據持久化 * 嵌入式數據模型的支持減少了數據庫系統上的 I/O 活動 * 索引支持更快的查詢, 并且可以包含來自嵌入式文檔和數組的鍵 (文本索引解決搜索的需求, TTL 索引解決歷史數據自動過期的需求, 地理位置索引可以用于構件各種 O2O 應用) * mmapv1, wiredtiger, mongorocks (rocksdb) in-memory 等多引擎支持滿足各種場景需求 * Gridfs 解決文件存儲需求 #### 1.4.2 高可用 MongoDB 的復制工具稱作**副本集**(replica set) 可以提供自動故障轉移和數據冗余 #### 1.4.3 高擴展 水平擴展是其核心功能一部分 分片將數據分布在一組集群的機器上 (海量數據存儲, 服務能力水平擴展) MongoDB 支持基于**片鍵**創建數據區域, 在一個平衡的集群當中, MongoDB 將一個區域所覆蓋的讀寫**只定向**到該區域的那些片 #### 1.4.4 其他 MongoDB支持豐富的查詢語言, 支持讀和寫操作(CRUD), 比如數據聚合, 文本搜索和地理空間查詢等. 無模式(動態模式), 靈活的文檔模型
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看