iT邦幫忙

0

資料庫快取概念

Zaku 2019-11-15 10:21:383584 瀏覽

想詢問一下有時候看文章會看到資料庫或伺服器會提到用快取(cache)來加快讀取速度,這個快取大概是什麼概念,有哪些實作方法,會連帶有一些資料不同步的情況發生?

fillano iT邦超人 1 級 ‧ 2019-11-15 10:30:20 檢舉
這個提問會牽涉到很多不同的東西,你要不要先把他分清楚?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
阿展展展
iT邦好手 1 級 ‧ 2019-11-15 10:37:15

為了讓讓資料存取的速度適應CPU的處理速度,透過提取「暫存不久前存取過的資料」的概念,來實現使CPU不再透過讀取記憶體造成效能降低,如今快取的概念的應用上已經不僅在CPU和主記憶體之間有,而且在記憶體與硬碟之間,也可以實現Cache(磁碟快取)。

Cache是一種概念,可以想像Cache是一個資料夾,會把你之前處理資料的結果,做成類似暫存檔的方式紀錄在那,並有一個做索引查詢的列表檔案,去紀錄每一支暫存檔,每一個暫存檔都有一個對應的唯一值,等到下次需要查找或處理同樣的檔案時,我們會先去Cache(資料夾)裡頭找到列表檔案內,是不是有上次紀錄的暫存處理結果,如果有的話就先把暫存檔呼叫出來繼續處理,而非每一次都需要去記憶體或是硬碟的方式做查找,來提升效能。

想像一個大型的購物網站,光在首頁可能就有百項商品,千百張大大小小的圖,這樣的情況在對資料庫撈取上完全沒有設計的情況下,會是多麼大的負擔?


你提到了 DB server 那麼...你應該是想問跟網頁相關的問題
但是...你這問題太過龐大了,Cache是一種概念,他會出現在各式各樣的地方
你要更收歛一些問題的範圍,才有辦法做討論,否則的話,想回答的朋友們也不知道該怎麼開口

滿滿的想說的東西 但是卻不知從何說起ㄚㄚ/images/emoticon/emoticon06.gif

看更多先前的回應...收起先前的回應...
Zaku iT邦新手 3 級 ‧ 2019-11-18 09:29:39 檢舉

恩主要是想問網頁資料庫相關,但概念大概也僅存透過佔存檔加快讀取速度之類的,沒有多餘的概念,不知道從何縮小範圍,還是說範圍縮小在資料庫的快取?

Zaku iT邦新手 3 級 ‧ 2019-11-18 09:31:59 檢舉

像是這個https://ithelp.ithome.com.tw/upload/images/20191118/20102709kpvg85VihW.jpg

你網頁的需求是什麼,你要存取什麼資料,有什麼東西會需要頻繁的存取,你需要憑證嗎?

Zaku iT邦新手 3 級 ‧ 2019-11-19 09:23:28 檢舉

會規律的被多個設備頻繁寫入資料,另外會有查詢系統查詢或監控所有設備的狀況,假設前提都為流量大的情況,暫不討論量小的話其實可以用怎麼樣

1
小魚
iT邦大師 1 級 ‧ 2019-11-15 11:04:38

你的問題應該可以寫一本畢業論文.
所以你想問什麼?
建議直接上網找資料吧.

看更多先前的回應...收起先前的回應...

畢業論文XDDDDDDDDDDDDD

小魚 iT邦大師 1 級 ‧ 2019-11-15 11:14:40 檢舉

這麼大的問題寫個論文不為過吧?
雖然我沒寫過就是了.
只是有幫人家的畢業論文寫過程式...

froce iT邦大師 1 級 ‧ 2019-11-15 11:43:52 檢舉

論文做大題目,你畢不了業。(茶

小魚 iT邦大師 1 級 ‧ 2019-11-15 11:51:45 檢舉

可以從大題目中找出細項去做. (疑

fillano iT邦超人 1 級 ‧ 2019-11-15 11:52:46 檢舉

搞不好拿來寫鐵人賽不錯XD

一個cache 寫個三篇吧 (X

0
Darwin Watterson
iT邦好手 1 級 ‧ 2019-11-15 16:27:06

如果是 MySQL 的話, 導入 Redis 來處理緩存最近很盛行 /images/emoticon/emoticon37.gif
如何使用Redis做MySQL的缓存

Zaku iT邦新手 3 級 ‧ 2019-11-18 09:32:50 檢舉

喔喔感謝大大提供實作面

1
海綿寶寶
iT邦大神 1 級 ‧ 2019-11-17 11:36:07

快取大概是什麼概念,有哪些實作方法,會連帶有一些資料不同步的情況發生?

實作我不會,概念我可以打個比喻
(以下例子純為舉例,先別想合理性或實際情形)

有位大學圖書館的工作人員
由於圖書館不開架,書籍不外借
所以該人員的工作是「找到借閱人要閱覽的書,拿到櫃台來給借閱人看,看完再拿回架上」
經過一段時間
該人員觀察出一些現象,其中包括
「開學的一個月內,來借特定書籍(例:php入門)的人特別多」
與其每次都要「找書、放回去、找書、放回去、找書、放回去...」重複的動作
該人員想出一個點子,就是
「影印那本書,放在櫃台,就可以給來借書的人看」以提高效率

簡單的說
這就是「快取」的概念

選我正解

複本!

我要發表回答

立即登入回答