三種東西永遠(yuǎn)不要放到mysql數(shù)據(jù)庫(kù)里
圖片,文件,二進(jìn)制數(shù)據(jù)永遠(yuǎn)不要放到mysql數(shù)據(jù)庫(kù)里。
很多人會(huì)覺(jué)得既然數(shù)據(jù)庫(kù)支持BLOB類型的數(shù)據(jù),把文件塞進(jìn)BLOB字段里一定沒(méi)有錯(cuò)了???錯(cuò),不是這樣的! 別的先不提,在很多數(shù)據(jù)庫(kù)語(yǔ)言里,處理大字段都不是很容易。
把文件存放在數(shù)據(jù)庫(kù)里有很多問(wèn)題:
1.對(duì)數(shù)據(jù)庫(kù)的讀/寫(xiě)的速度永遠(yuǎn)都趕不上文件系統(tǒng)處理的速度
2.數(shù)據(jù)庫(kù)備份變的巨大,越來(lái)越耗時(shí)間
3.對(duì)文件的訪問(wèn)需要穿越你的應(yīng)用層和數(shù)據(jù)庫(kù)層
這后兩個(gè)是真正的殺手。
那么把圖片縮略圖存到數(shù)據(jù)庫(kù)里?結(jié)果是,你不能使用nginx或其它類型的輕量級(jí)服務(wù)器來(lái)處理它們了。
給自己行個(gè)方便吧,在數(shù)據(jù)庫(kù)里只簡(jiǎn)單的存放一個(gè)磁盤上你的文件的相對(duì)路徑,或者使用S3或CDN之類的服務(wù)。
短生命期數(shù)據(jù)不要放到mysql數(shù)據(jù)庫(kù)里
使用情況統(tǒng)計(jì)數(shù)據(jù),測(cè)量數(shù)據(jù),GPS定位數(shù)據(jù),session數(shù)據(jù),任何只是短時(shí)間內(nèi)對(duì)你有用,或經(jīng)常變化的數(shù)據(jù)。 如果你發(fā)現(xiàn)自己正在使用定時(shí)任務(wù)從某個(gè)表里刪除有效期只有一小時(shí),一天或數(shù)周的數(shù)據(jù), 那說(shuō)明你沒(méi)有找對(duì)正確的做事情的方法。 使用redis,statsd/graphite, Riak,它們都是干這種事情更合適的工具。 這建議也適用于對(duì)于收集那些短生命期的數(shù)據(jù)。
當(dāng)然,用挖土機(jī)在后花園里種土豆也是可行的,但相比起從儲(chǔ)物間里拿出一把鏟子, 你預(yù)約一臺(tái)挖土機(jī)、等它趕到你的園子里挖坑,這顯然更慢。 你要選擇合適的工具來(lái)處理手頭上的事。
日志文件不要放到mysql數(shù)據(jù)庫(kù)里
把日志數(shù)據(jù)存放到數(shù)據(jù)庫(kù)里,表面上看起來(lái)似乎不錯(cuò),而且“將來(lái)也許我需要對(duì)這些數(shù)據(jù)進(jìn)行復(fù)雜的查詢”, 這樣的話很得人心。這樣做并不是一個(gè)特別差的做法, 但如果你把日志數(shù)據(jù)和你的產(chǎn)品數(shù)據(jù)存放到一個(gè)數(shù)據(jù)庫(kù)里就非常不好了。
也許你的日志記錄做的很保守,每次web請(qǐng)求只產(chǎn)生一條日志。 對(duì)于整個(gè)網(wǎng)站的每個(gè)事件來(lái)說(shuō),這仍然會(huì)產(chǎn)生大量的數(shù)據(jù)庫(kù)插入操作, 爭(zhēng)奪你用戶需要的數(shù)據(jù)庫(kù)資源。 如果你的日志級(jí)別設(shè)置為verbose或debug,那等著看你的數(shù)據(jù)庫(kù)著火吧。
你應(yīng)該使用一些比如Splunk Loggly或純文本文件來(lái)存放你的日志數(shù)據(jù)。 這樣去查看它們也許會(huì)不方便,但這樣的時(shí)候不多,甚至有時(shí)候你需要寫(xiě)出一些代碼來(lái)分析出你想要的答案, 但總的來(lái)說(shuō)是值得的。
相關(guān)文章
MySQL優(yōu)化全攻略-相關(guān)數(shù)據(jù)庫(kù)命令
MySQL優(yōu)化全攻略-相關(guān)數(shù)據(jù)庫(kù)命令...2006-11-11
MySQL權(quán)限USAGE和ALL PRIVILEGES的用法
本文主要介紹了MySQL權(quán)限USAGE和ALL PRIVILEGES的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09
MySQL判斷查詢條件是否包含某字符串的7種方式總結(jié)
SQLServer數(shù)據(jù)庫(kù)死鎖是指在多個(gè)事務(wù)同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)資源時(shí),發(fā)生了互相等待對(duì)方所持有資源的情況,導(dǎo)致所有事務(wù)無(wú)法繼續(xù)執(zhí)行的現(xiàn)象,這篇文章主要給大家介紹了關(guān)于MySQL判斷查詢條件是否包含某字符串的7種方式,需要的朋友可以參考下2024-07-07
mysql 5.7.17 安裝教程 附MySQL服務(wù)無(wú)法啟動(dòng)的解決方法
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.17安裝教程,并且為大家分享了MySQL服務(wù)無(wú)法啟動(dòng)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
MySQL將select結(jié)果執(zhí)行update的實(shí)例教程
這篇文章主要給大家介紹了關(guān)于MySQL將select結(jié)果執(zhí)行update的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
mysql升級(jí)到5.7時(shí),wordpress導(dǎo)數(shù)據(jù)報(bào)錯(cuò)1067的問(wèn)題
小編最近把mysql升級(jí)到5.7了,wordpress導(dǎo)數(shù)據(jù)報(bào)錯(cuò),導(dǎo)入數(shù)據(jù)庫(kù)時(shí)報(bào)1067 – Invalid default value for ‘字段名’的問(wèn)題,怎么解決這個(gè)問(wèn)題,下面小編把我的解決方案分享到腳本之家平臺(tái)供大家參考,希望對(duì)大家有所幫助2021-05-05
防止MySQL重復(fù)插入數(shù)據(jù)的三種方法
在MySQL進(jìn)行數(shù)據(jù)插入操作時(shí),總是會(huì)考慮是否會(huì)插入重復(fù)數(shù)據(jù),之前的操作都是先根據(jù)主鍵或者唯一約束條件進(jìn)行查詢,有就進(jìn)行更新沒(méi)有就進(jìn)行插入。代碼反復(fù)效率低下。2020-09-09
數(shù)據(jù)庫(kù)查詢哪個(gè)對(duì)像里面包含什么字段方法語(yǔ)句
在本篇文章里小編給大家整理的關(guān)于數(shù)據(jù)庫(kù)查詢哪個(gè)對(duì)像里面包含什么字段方法語(yǔ)句有需要的朋友們可以學(xué)習(xí)下。2019-08-08

