首頁  >  問答  >  主體

mongodb還有分錶的必要嗎?

mongodb自帶了autosharding,那麼還有必要分錶嗎,加入一張表過億級?

天蓬老师天蓬老师2698 天前1707

全部回覆(4)我來回復

  • 给我你的怀抱

    给我你的怀抱2017-05-02 09:28:37

    嗯是我踩的,因為這樣的答案是在誤導讀者。
    無論哪種資料庫建立索引的時候開銷都是巨大的,因為這代表著要遍歷整個表裡的數據,怎麼可能壓力不大?所以才會有{background: true}選項可以適當緩解這種情況。當在一個壓力實在太大的集群中創建索引,我們更建議使用「滾動」創建索引的方式,將從結點逐一摘下來創建索引再放上線,以避免影響線上系統運行。
    至於鎖的問題,3.0開始WT引擎支援的就是文檔鎖定(行鎖)。
    查詢索引的時候開銷龐大,多半是你的索引建立不當,可以舉出具體的例子來討論。
    數據過億的時候坑多也請舉出具體例子討論。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-05-02 09:28:37

    Mongodb支援自動分片和分割架構,可以利用它來建立一個水平擴展的資料庫叢集系統,將資料庫分錶儲存在各個sharding節點上。

    請看 mongodb 分片代替資料庫分錶 [1]: https://yq.aliyun.com/article...

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-02 09:28:37

    可以按月分錶 名字_03 名字_04 名字不變 程式中根據時間戳動態變更要查詢的表名

    回覆
    0
  • PHPz

    PHPz2017-05-02 09:28:37

    我個人覺得還是有必要的,MongoDB有鎖庫(低版本)和鎖表(中版本)的問題,即使有存儲文件的分片,但是在建立索引、以及在查索引的時候開銷還是巨大! ! ! !數據過億的時候還是坑多!

    回覆
    0
  • 取消回覆