如何優化MongoDB以及其它數據庫?
我們知道做數據庫最重要的還是做好優化,那麼優化這兩個看似簡單,但是要怎麼做才好呢?下面小編就為大家分享下優化MongoDB以及其它數據庫的方法吧。
Jared Rosoff 在 Scale Out Camp 發表了一篇簡潔、有效、有趣和令人信服的《8 分鐘 MongoDB 教程》描述瞭如何進行 MongoDB 優化。
文中的方法不僅限於 MongoDB,還可應用到絕大多數數據庫,比如查詢優化、找出你的熱數據、調整文件系統、選擇正確的磁盤設備、分片。下面分別對 5 種策略進行説明:
查詢優化:用 B-tree 搜索的速度顯然比全表掃描來的快,所以你需要優化你的查詢語句。用 explain來分析你的查詢語句,如果返回的結果現實這個查詢用到了 cursor 那麼它會是一個全表掃描,也就是説它會非常慢。分析有多少條記錄會滿足查詢條件,以及查詢會執行多長時間。改進的方法就是為其增加索引。不管你是有 1 台還是有 100 台服務器。
找出你的熱數據尺寸:在數據庫前面使用 Memcached 其實挺可笑的,因為現在內存很便宜,你可以使用大量的內存來緩存數據庫內容,MongoDB 就是這樣乾的。熱數據 = 活躍記錄 + 使用過的索引。在內存中命中數據是非常快的,而從磁盤獲取數據就非常慢。假設你有上十億的用户,但只有十萬用户當前是活躍的,那麼你的熱數據尺寸就是十萬條。你需要規劃足夠的'內存來存放那十萬條熱數據,保證他們能夠從內存而不是磁盤裏讀取,別忘了索引也是需要佔用內存的。
調整文件系統:性能問題往往根源是在文件系統。比如 EXT3 已經過時了,請使用 EXT4、XFS 和其它高性能的文件系統。對於數據庫來説並不需要每次訪問都去更新文件,所以關掉文件的訪問時間跟蹤功能,不然會有很多不必要的磁盤寫操作。在 EXT3 文件系統預分配一個 2GB 大小的文件是非常耗時的,因為它必須得在分配時完整初始化整個文件。
選擇正確的磁盤設備:尋道時間是需要關注的問題,因為大多數時候磁盤的 IO 操作是隨機的。尋道時間取決於機械臂在磁盤上來回移動的速度,磁盤的平均尋道操作能力是每秒鐘能完成 200 次。高速磁盤之所以讀取數據更快,是因為他們有更高的帶寬容量,除此之外他們的尋道時間並沒有區別。使用單個磁盤時,你可以獲得每秒 200 次尋道;而使用 RAID 0(跨多個磁盤),3 塊磁盤可以讓你獲得每秒 600 次的尋道速度;那麼使用 RAID 10(鏡像 + 跨越),6 塊磁盤甚至能讓你獲得每秒 1200 次尋道。所以要考慮用 RAID 來進行優化。如今的 SSD 存儲就更誇張了,一次尋道只要 0.1 毫秒,是機械磁盤的 50 倍,更適用於隨機的讀取操作。
分片:如果你的程序性能很差,索引又建的不正確,磁盤設備的速度也很慢,那麼單點的性能也就非常差了。改善這種情況的方法就是用分片來做橫向擴展,分片可以讓你把系統負責分散到由更多機器組成的高可用的 replica sets 集羣。數據將會按一定範圍被切分成很多的區塊,然後橫向擴展到上百台服務器,上千次的寫操作在被拆分後每台服務器只需要處理十來次操作。分片讓橫向擴展變得容易。
-
關於基於數據庫的多媒體技術在建築結構與識圖教學中的應用探討
摘要:建築結構與識圖作為土建類專業的一門專業基礎課程,對學生的計算分析和空間想象能力有較高要求。利用多媒體技術可以將課程中的抽象概念具體化,並調動學生的學習情緒和注意力,有效提高教學效率。分析了建築結構與識圖課程的知識要點及結構層次,並在此基礎上給出...
-
電工系統基礎知識
電工系統基礎知識是什麼?相信很多人都想知道吧?以下是小編為您整理的電工系統基礎知識相關資料,歡迎閲讀!電工系統基礎知識1、左零右火。2、三相五線制用顏色黃、綠、紅、淡藍色分別表示U、V、W、N保護接地線雙顏色(PE)。3、變壓器在運行中,變壓器各相電流不應超過...
-
可視門禁系統接線圖解
隨着感應卡技術,生物識別技術的發展,門禁系統得到了飛躍式的發展。以下是小編為大家精心整理的可視門禁系統接線圖解,歡迎大家閲讀。一、設備安裝(1)前端設備A、進門處安裝讀卡器。在讀卡器感應範圍內,切勿靠近或接觸高頻或強磁場(如重載馬達、監視器等),並需配合...
-
Windows10系統無法安裝solidworks怎麼辦
Windows10安裝不了SolidWorks怎麼辦?SolidWorks是一款3d設計軟件,對於一些設計工作者來説,是必不可少的作圖工具。可是有些用户在Windows10系統下會遇到無法安裝SolidWorks的情況,這該如何解決呢?這就需要使用到註冊表來解決了,下面我們來看看Windows10安裝不了Solid...