數據庫讀取速度與文件IO讀取速度比較
記下 DB 存取與文件存取的差異
本文來源于之前做的一個小程序科技愛好者周刊在文章數據存儲上的技術選型思考。
當時想著后期把文章 markdown 文件內容遷移到云數據庫通過云函數查詢出來顯示。后來想想為什么非要這么做呢,數據庫存取就一定好嗎??
存儲數據方式
數據庫的要比單純的文件存儲復雜很多。
以 Oracle 為例:
從數據庫的內存結構上來看,一個運行的數據庫實例包含 SGA 區+PGA 區。
SGA區由數據緩沖區、共享池、重做日志緩沖區、大型池、JAVA池構成
PGA區由排序區、私有SQL區以及堆棧構成
如果我們只是insert一條語句,單純比較速度,自然是寫入文件快,這只是一個簡單的IO操作。此時寫入數據庫的話,首先需要建立連接,這個需要時間,其次要先在內存中SGA進行分析,解析SQL語句,再加上一些必要的操作,最后寫入到數據庫文件中,這個數據庫文件本質上也是一個文件。
但是數據庫的SGA緩存優化,能夠大大減少搜索時間。而且文本文件只是一個簡單的存儲,沒有檢索功能。
所以
如果是簡單的配置參數或特別小的數據,可以考慮存儲在文件中,讀寫速度快。
如果大批量的數據,肯定是存在數據庫中比較好了,數據庫會把很多數據放內存里,不會每次都讀盤。
這樣的話,因為在上述場景中小程序讀取的 markdown 文件不算是大文件所以直接采用文件存儲也就未嘗不可了。
數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。