亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

優(yōu)化MySQL 還是使用緩存?

瀏覽:53日期:2023-10-17 12:08:19

今天我想對(duì)一個(gè)Greenfield項(xiàng)目上可以采用的各種性能優(yōu)化策略作個(gè)對(duì)比。換言之,該項(xiàng)目沒(méi)有之前決策強(qiáng)加給它的各種約束限制,也還沒(méi)有被優(yōu)化過(guò)。

具體來(lái)說(shuō),我想比較的兩種優(yōu)化策略是優(yōu)化MySQL和緩存。提前指出,這些優(yōu)化是正交的,唯一讓你選擇其中一者而不是另一者的原因是他們都耗費(fèi)了資源,即開(kāi)發(fā)時(shí)間。

優(yōu)化MySQL 還是使用緩存?

 優(yōu)化MySQL

優(yōu)化MySQL時(shí),一般會(huì)先查看發(fā)送給mysql的查詢(xún)語(yǔ)句,然后運(yùn)行explain命令。稍加審查后很常見(jiàn)的做法是增加索引或者對(duì)模式做一些調(diào)整。

優(yōu)點(diǎn)

1、一個(gè)經(jīng)過(guò)優(yōu)化的查詢(xún)對(duì)于所有使用應(yīng)用的用戶(hù)來(lái)說(shuō)都是快速的。因?yàn)樗饕ㄟ^(guò)對(duì)數(shù)復(fù)雜度的速度來(lái)檢索數(shù)據(jù)(又名分制,正如你搜索一個(gè)電話(huà)簿一樣,逐步縮小搜索范圍),而且隨著數(shù)據(jù)量的遞增也能維持良好的性能。對(duì)一個(gè)未經(jīng)索引化的查詢(xún)的結(jié)果做緩存隨著數(shù)據(jù)的增長(zhǎng)有時(shí)候則可能會(huì)表現(xiàn)得更差。隨著數(shù)據(jù)的增長(zhǎng),那些未命中緩存的用戶(hù)可能會(huì)得到很糟糕的體驗(yàn),這樣的應(yīng)用是不可用的。

2、優(yōu)化MySQL不需要擔(dān)心緩存失效或者緩存數(shù)據(jù)過(guò)期的問(wèn)題。

3、優(yōu)化MySQL可以簡(jiǎn)化技術(shù)架構(gòu),在開(kāi)發(fā)環(huán)境下復(fù)制和工作會(huì)更加容易。

缺點(diǎn)

1、有一些查詢(xún)不能光通過(guò)索引得到性能上的改善,可能還需要改變模式,在某些情況下這對(duì)于一些應(yīng)用可能會(huì)很麻煩。

2、有些模式的更改可能用于反規(guī)范化(數(shù)據(jù)備份)。盡管對(duì)于DBA來(lái)說(shuō),這是一項(xiàng)常用的技術(shù),它需要所有權(quán)以確保所有的地方都是由應(yīng)用程序更新,或需要安裝觸發(fā)器來(lái)保證這種變化。

3、一些優(yōu)化手段可能是MySQL所特有的。也就是說(shuō),如果底層軟件被移植到多個(gè)數(shù)據(jù)庫(kù)上工作,那么很難確保除了增加索引外一些更復(fù)雜的優(yōu)化技術(shù)可以通用。

 使用緩存

這種優(yōu)化需要人來(lái)分析應(yīng)用的實(shí)際情況,然后將處理代價(jià)昂貴的部分從MySQL中剝離出來(lái)用第三方緩存替代,比如memcached或Redis。

優(yōu)點(diǎn)

1、緩存對(duì)于一些MySql自身很難優(yōu)化的查詢(xún)來(lái)說(shuō)會(huì)工作地很好,比如大規(guī)模的聚合或者分組的查詢(xún)。

2、緩存對(duì)于提高系統(tǒng)的吞吐率來(lái)說(shuō)可能是個(gè)不錯(cuò)的方案。比如對(duì)于多人同時(shí)訪問(wèn)應(yīng)用時(shí)響應(yīng)速度很慢的情況。

3、緩存可能更容易構(gòu)建在另一個(gè)應(yīng)用之上。比如:你的應(yīng)用可能是另一個(gè)用MySQL存儲(chǔ)數(shù)據(jù)的軟件包的前端,而要對(duì)這個(gè)軟件包做任何數(shù)據(jù)庫(kù)方面的改動(dòng)都非常難。

缺點(diǎn)

1、如果數(shù)據(jù)對(duì)外提供多種存取范式(例如,在不同的頁(yè)面上用不同的形式展示),那么讓緩存過(guò)期或者更新可能會(huì)很難,同時(shí)/或者可能需要容忍已過(guò)期的數(shù)據(jù)。一個(gè)可行的替代方案是設(shè)計(jì)一套更加精細(xì)的緩存機(jī)制,當(dāng)然它也有缺點(diǎn),即多次獲取緩存會(huì)增加時(shí)延。

2、緩存一個(gè)產(chǎn)生代價(jià)昂貴的對(duì)象對(duì)于那些未命中緩存的用戶(hù)(見(jiàn)優(yōu)化MySQL的優(yōu)勢(shì)#1)而言可能會(huì)產(chǎn)生潛在的性能差異。一些好的性能實(shí)踐表明你應(yīng)該盡量縮小用戶(hù)之間的差異性,而不僅僅是平均化(緩存傾向于這么做)。

3、幼稚的緩存實(shí)現(xiàn)無(wú)力應(yīng)對(duì)一些微妙的漏洞,比如雪崩效應(yīng)。就在上周我?guī)椭艘粋€(gè)人,他的數(shù)據(jù)庫(kù)服務(wù)器被多個(gè)試圖同時(shí)再生同樣緩存內(nèi)容的用戶(hù)請(qǐng)求沖垮。正確的策略是引入一定級(jí)別的鎖來(lái)將緩存再生的請(qǐng)求序列化。

 總結(jié)

一般情況下,我會(huì)建議用戶(hù)先對(duì)MySQL進(jìn)行優(yōu)化,因?yàn)檫@是我認(rèn)為開(kāi)始階段最合適的解決方案。但長(zhǎng)期來(lái)看,大部分應(yīng)用都會(huì)有一些用例需要一定程度上同時(shí)實(shí)現(xiàn)以上這些方案。

原文鏈接: Morgan Tocker 翻譯: 伯樂(lè)在線 - 高磊

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
主站蜘蛛池模板: 人人婷婷色综合五月第四人色阁 | 久久免费精品国产72精品剧情 | 免费精品99久久国产综合精品 | a级高清观看视频在线看 | 欧美精品不卡 | 国产精品高清一区二区不卡 | 全黄一级裸片视频在线观看 | 桃花福利视频在线观看 | 久久精品免观看国产成人 | 亚洲综合成人网在线观看 | 亚洲一区二区精品推荐 | 看免费黄色 | 日本a黄色片| 国产乱码精品一区二区三区四川人 | 一级毛片aaa片免费观看 | 国产福利一区二区在线观看 | 丝袜 亚洲 另类 欧美 变态 | a毛片在线观看 | 久久人人爽人人爽人人片av不 | 99久久999久久久综合精品涩 | 欧美自拍色图 | 欧美成人免费全部观看天天性色 | 国产免费看网站v片不遮挡 国产免费高清 | 一级毛片在线免费播放 | 国产亚洲精品综合在线网址 | 中文字幕电影在线观看 | 日韩精品一区二区三区高清 | 成人午夜性影院视频 | 色综合91久久精品中文字幕 | 国产免费一区二区三区 | 成人亚洲国产 | 日韩一级特黄毛片在线看 | 亚洲国产精品线播放 | 欧美激情一区二区三区不卡 | 女人a级毛片 | 七色永久性tv网站免费看 | 女人大毛片一级毛片一 | 亚洲 国产 日韩 欧美 | 日韩在线精品 | 在线播放一区二区精品产 | 综合久久久久综合 |