第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

要做還是不做:將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中

要做還是不做:將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中

MYYA 2019-07-17 16:06:03
要做還是不做:將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中在Web應(yīng)用程序的上下文中,我的老板總是說(shuō)要在數(shù)據(jù)庫(kù)中引用圖像,而不是圖像本身。我傾向于同意在DB中存儲(chǔ)url與映像本身是一個(gè)好主意,但在我現(xiàn)在工作的地方,我們?cè)跀?shù)據(jù)庫(kù)中存儲(chǔ)了很多圖像。我能想到的唯一原因也許是它更安全?你不想有人和網(wǎng)址有直接聯(lián)系?但是,如果是這樣的話,您總是可以讓網(wǎng)站/服務(wù)器處理圖像,就像ASP.NET中的處理程序一樣,這樣用戶就需要進(jìn)行身份驗(yàn)證才能查看圖像。我還認(rèn)為從數(shù)據(jù)庫(kù)中提取圖像會(huì)影響性能。為什么將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中可能是一個(gè)好/不太好的主意,還有其他原因嗎?
查看完整描述

3 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果你偶爾需要檢索圖像,它必須在幾個(gè)不同的Web服務(wù)器上可用。但我想差不多就是這樣了。

  • 如果它不必在多個(gè)服務(wù)器上可用,最好將它們放在文件系統(tǒng)中。
  • 如果它必須在多個(gè)服務(wù)器上可用,而且系統(tǒng)中實(shí)際上有某種負(fù)載,那么您將需要某種分布式存儲(chǔ)。

我們?cè)谶@里討論的是一個(gè)邊緣案例,您可以通過(guò)利用數(shù)據(jù)庫(kù)來(lái)避免給系統(tǒng)增加額外的復(fù)雜性。

除此之外,別這么做。


查看完整回答
反對(duì) 回復(fù) 2019-07-17
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

在數(shù)據(jù)庫(kù)中放置圖像的優(yōu)點(diǎn)。

  1. 交易。當(dāng)您保存BLOB時(shí),您可以像任何其他DB數(shù)據(jù)一樣提交它。這意味著您可以將BLOB與任何關(guān)聯(lián)元數(shù)據(jù)一起提交,并確保兩者是同步的。如果磁盤空間用完了呢?不承諾。文件沒(méi)有完全上傳?不承諾。愚蠢的應(yīng)用錯(cuò)誤?不承諾。如果保持映像及其相關(guān)的元數(shù)據(jù)相互一致對(duì)您的應(yīng)用程序很重要,那么DB可以提供的事務(wù)可能是一件好事。

  2. 一個(gè)要管理的系統(tǒng)。需要備份元數(shù)據(jù)和BLOB嗎?備份數(shù)據(jù)庫(kù)。需要復(fù)制嗎?復(fù)制數(shù)據(jù)庫(kù)。需要從部分系統(tǒng)故障中恢復(fù)嗎?重新加載DB并向前滾動(dòng)日志。DBS給一般數(shù)據(jù)帶來(lái)的所有優(yōu)點(diǎn)(卷映射、存儲(chǔ)控制、備份、復(fù)制、恢復(fù)等)適用于你的斑點(diǎn)。更一致,更容易管理。

  3. 保安。數(shù)據(jù)庫(kù)具有非常細(xì)粒度的安全特性,可以利用這些特性。模式、用戶角色,甚至是諸如“只讀視圖”之類的東西,以提供對(duì)數(shù)據(jù)子集的安全訪問(wèn)。所有這些特性都適用于包含氣泡的表。

  4. 集中管理與#2相關(guān),但基本上DBA(似乎沒(méi)有足夠的能力)可以管理一件事情:數(shù)據(jù)庫(kù)。現(xiàn)代數(shù)據(jù)庫(kù)(特別是大型數(shù)據(jù)庫(kù))可以很好地工作,可以跨幾臺(tái)機(jī)器安裝大型數(shù)據(jù)庫(kù)。單一的管理來(lái)源簡(jiǎn)化了程序,簡(jiǎn)化了知識(shí)轉(zhuǎn)移。

  5. 大多數(shù)現(xiàn)代數(shù)據(jù)庫(kù)都處理得很好。有了數(shù)據(jù)層中BLOB的一級(jí)支持,就可以輕松地將BLOB從DB流到客戶端。雖然有些操作可以同時(shí)“吸”整個(gè)BLOB,但如果您不需要該工具,那么就不要使用它。研究DB的SQL接口并利用它的特性。沒(méi)有理由把它們當(dāng)作“大字符串”,它們被一刀切地處理,然后把你的氣泡變成大的、記憶的、吞食的、高速緩存的炸彈。

  6. 就像您可以為圖像設(shè)置專用文件服務(wù)器一樣,您也可以在數(shù)據(jù)庫(kù)中設(shè)置專用的BLOB服務(wù)器。為它們提供專用磁盤卷、專用模式、專用緩存等。DB中的所有數(shù)據(jù)都不是相同的,行為也不一樣,沒(méi)有理由對(duì)其進(jìn)行完全相同的配置。良好的數(shù)據(jù)庫(kù)具有良好的控制水平。

從DB提供BLOB的主要NIT是確保HTTP層實(shí)際利用所有HTTP協(xié)議來(lái)執(zhí)行服務(wù)。

許多簡(jiǎn)單的實(shí)現(xiàn)只是抓取BLOB,然后將它們從套接字中大量丟棄。但是HTTP有幾個(gè)非常適合流圖像的重要特性,特別是緩存頭、eTags和塊傳輸,以允許客戶端請(qǐng)求BLOB的“片段”。

確保您的HTTP服務(wù)正確地響應(yīng)了所有這些請(qǐng)求,并且您的DB可以是一個(gè)非常好的Web公民。通過(guò)將文件緩存到由HTTP服務(wù)器提供服務(wù)的文件系統(tǒng)中,您可以“免費(fèi)”獲得其中的一些優(yōu)點(diǎn)(因?yàn)橐粋€(gè)好的服務(wù)器無(wú)論如何都會(huì)對(duì)“靜態(tài)”資源這樣做),但是要確保如果這樣做,就必須遵守修改日期等圖像的要求。

例如,有人請(qǐng)求Spaceeshuttle.jpg,這是2009年1月1日創(chuàng)建的圖像。最終緩存在請(qǐng)求日期的文件系統(tǒng)上,比如2009年2月1日。稍后,圖像將從緩存(FIFO策略或其他什么)中清除,稍后,有人在2009年3月1日再次請(qǐng)求它?,F(xiàn)在它有了2009年3月1日的“創(chuàng)建日期”,盡管它的創(chuàng)建日期實(shí)際上是1月1日。所以,您可以看到,特別是如果您的緩存發(fā)生了很大的變化,使用if修改的頭的客戶端可能會(huì)獲得比他們實(shí)際需要的更多的數(shù)據(jù),因?yàn)榉?wù)器認(rèn)為資源已經(jīng)改變了,而實(shí)際上它沒(méi)有改變。

如果將緩存創(chuàng)建日期與實(shí)際創(chuàng)建日期保持同步,這可能會(huì)減少問(wèn)題。

但關(guān)鍵是,要想成為一個(gè)“優(yōu)秀的網(wǎng)絡(luò)公民”,并為你和你的客戶節(jié)省一些帶寬等,就必須仔細(xì)考慮整個(gè)問(wèn)題。

我剛剛為一個(gè)為DB提供視頻的Java項(xiàng)目進(jìn)行了所有這些工作,這一切都很好。


查看完整回答
反對(duì) 回復(fù) 2019-07-17
  • 3 回答
  • 0 關(guān)注
  • 297 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)