偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

用分區(qū)和負(fù)載均衡讓你的MySQL更大更好

數(shù)據(jù)庫(kù) MySQL 數(shù)據(jù)庫(kù)運(yùn)維
如果你發(fā)現(xiàn)你的MySQL數(shù)據(jù)庫(kù)逐漸變慢,想要令它更快更好,那么你可以閱讀此文。本文介紹如何通過(guò)分區(qū)令MySQL更大,以及通過(guò)負(fù)載均衡使MySQL更好。

通常,當(dāng)我們的MySQL數(shù)據(jù)庫(kù)逐漸變慢時(shí),我們就希望通過(guò)一切努力使它變得更快、更強(qiáng)、更大、更好!那么都有哪些方法呢?別著急,我會(huì)一個(gè)一個(gè)給大家介紹如何才能實(shí)現(xiàn)這些美好的愿望。閱讀本系列文章將有助于擴(kuò)大你的視野,更好地規(guī)劃你將來(lái)的需要,本系列的第一篇文章“更快,更強(qiáng)的MySQL”討論了查詢優(yōu)化和硬件調(diào)整,包括增加額外的服務(wù)器和應(yīng)用程序變更,本文將介紹如何通過(guò)分區(qū)和負(fù)載均衡解決方案讓你的MySQL變得更大更好。

更大的MySQL

增加更多的MySQL實(shí)例是提高應(yīng)用程序響應(yīng)速度的有效方法,如果你的服務(wù)器有多顆CPU,充足的內(nèi)存和快速的硬盤,這些資源有相當(dāng)一部分處于閑置狀態(tài),那么在這種情況下,在服務(wù)器上可以同時(shí)運(yùn)行多個(gè)MySQL實(shí)例,因?yàn)镸ySQL默認(rèn)情況下只有一個(gè)進(jìn)程和多個(gè)會(huì)話線程,因此它真正能利用的最大硬件資源是有限的。

如果你的服務(wù)器已經(jīng)快飽和了,那么必須增加服務(wù)器,不管你的多個(gè)MySQL實(shí)例是在一臺(tái)服務(wù)器上,還是在多臺(tái)服務(wù)器上,你都需要為應(yīng)用程序配置一個(gè)方法讓它知道該將查詢發(fā)送給哪臺(tái)服務(wù)器,如果是要修改數(shù)據(jù),那就應(yīng)該將指令發(fā)送到主數(shù)據(jù)庫(kù)實(shí)例,如果僅僅是查詢操作,那么隨便發(fā)給任何一個(gè)從數(shù)據(jù)庫(kù)實(shí)例即可。

1、數(shù)據(jù)分區(qū)和水平分區(qū)

因?yàn)樵S多Web應(yīng)用程序是通過(guò)會(huì)話來(lái)識(shí)別用戶的,通過(guò)會(huì)話將它們分配到不同的從數(shù)據(jù)庫(kù)實(shí)例顯得很有道理。例如A-G,H-O,P-Z數(shù)據(jù)庫(kù)實(shí)例可能在工作,這時(shí)可以通過(guò)用戶名的哈希值,或userid將用戶分配到不同的服務(wù)器上,這就是所謂的分區(qū)鍵,選擇分區(qū)鍵時(shí)需要慎重決定,因?yàn)樗鼤?huì)影響到你如何構(gòu)建從數(shù)據(jù)庫(kù)實(shí)例,主要是考慮如何讓這些服務(wù)器平均承擔(dān)工作負(fù)載,如果選擇得不好,假設(shè)從數(shù)據(jù)庫(kù)倒掉,也可能會(huì)引起數(shù)據(jù)中斷。

如果正采用這種分區(qū),你需要決定程序運(yùn)行時(shí)使用哪個(gè)數(shù)據(jù)庫(kù),這可以通過(guò)一個(gè)中間層如MySQL代理來(lái)實(shí)現(xiàn),雖然它還處于Alpha階段,但它的思想很好,并且已經(jīng)有很多人將其用于生產(chǎn)環(huán)境,它運(yùn)行在服務(wù)器上,響應(yīng)端口3306上的請(qǐng)求,然后將這些查詢通過(guò)高速語(yǔ)言如lua實(shí)現(xiàn)的某些邏輯轉(zhuǎn)發(fā)給后端適當(dāng)?shù)姆?wù)器。

其次你也可以在應(yīng)用程序中指定將查詢發(fā)到哪些服務(wù)器,這也是最靈活的方法,你可以完全控制整個(gè)決策過(guò)程,你也可以使用master_pos_wait檢查從數(shù)據(jù)庫(kù)實(shí)例,看看它們是否有足夠的計(jì)算資源。還有你使用的編程語(yǔ)言或Web框架可能也會(huì)提供這方面的支持,如果你還不清楚,可以查詢它們的文檔。

你還可以研究一下Continuent Tungsten,DBIx::DBCluster for Perl以及SQLRelay,它們支持許多不同的編程語(yǔ)言和數(shù)據(jù)庫(kù)。同樣,CMS如Drupal也支持多種只讀的從數(shù)據(jù)庫(kù),你只需要啟用這個(gè)功能即可。

使用這種架構(gòu)需要考慮的另一個(gè)事情是,是否要使用主數(shù)據(jù)庫(kù)實(shí)例,以及何時(shí)使用,一般說(shuō)來(lái),所有插入,更新和刪除操作都應(yīng)放在主數(shù)據(jù)庫(kù)實(shí)例上完成,所有的查詢操作都放在從數(shù)據(jù)庫(kù)實(shí)例上完成。例如,如果某個(gè)用戶對(duì)博客文章發(fā)表了注釋,此時(shí)如果直接使用從數(shù)據(jù)庫(kù),可能無(wú)法完成,因?yàn)镸ySQL復(fù)制架構(gòu)會(huì)存在滯后,此時(shí)從數(shù)據(jù)庫(kù)中可能還沒有那篇博文。

檢查過(guò)時(shí)數(shù)據(jù)是一個(gè)更好的方法,如果你有報(bào)告查詢?cè)谝归g運(yùn)行,這種方法可能工作得很好,你只需要確保復(fù)制趕得上進(jìn)度即可。

另一個(gè)方法是通過(guò)版本號(hào)跟蹤數(shù)據(jù)庫(kù)變更,在讀取數(shù)據(jù)之前確定數(shù)據(jù)是否是最新的版本。

最后,MySQL提供了一個(gè)函數(shù)master_pos_wait,它可以確定從數(shù)據(jù)庫(kù)更新到哪個(gè)時(shí)間點(diǎn)了。

2、功能分區(qū)

你可能已經(jīng)使用到功能分區(qū),使用功能分區(qū)時(shí),需要?jiǎng)?chuàng)建一個(gè)生產(chǎn)數(shù)據(jù)庫(kù)的副本用于不同目的,如其中一個(gè)用于數(shù)據(jù)倉(cāng)庫(kù)和報(bào)告,另一個(gè)用于文本搜索等。

通過(guò)負(fù)載均衡使MySQL變得更好

如果你的從數(shù)據(jù)庫(kù)已經(jīng)有些只讀數(shù)據(jù),你可能需要實(shí)現(xiàn)負(fù)載均衡,將流量平均分配到各個(gè)從數(shù)據(jù)庫(kù),實(shí)現(xiàn)方法有多種,如隨機(jī)分配,最少連接法,響應(yīng)速度最快法,或某種加權(quán)平均法,雖然某些硬件負(fù)載均衡設(shè)備可以提供負(fù)載均衡功能,但它們往往是設(shè)計(jì)用于均衡網(wǎng)絡(luò)流量,并沒有提供數(shù)據(jù)庫(kù)相關(guān)的均衡功能。

幸運(yùn)的是有很多軟件解決方案,LVS項(xiàng)目就是一個(gè)不錯(cuò)的候選,它已經(jīng)發(fā)展得相當(dāng)成熟穩(wěn)定,它提供了類似DNS輪詢的負(fù)載均衡算法,但是在IP層實(shí)現(xiàn)的,速度非???。此外,也有很多項(xiàng)目是建立在LVS基礎(chǔ)之上的,包括wackamole,它是基于對(duì)等網(wǎng)絡(luò)的,因此不會(huì)發(fā)生單點(diǎn)故障,還有一個(gè)值得推薦的項(xiàng)目是ultramonkey。

小結(jié)

MySQL提供了許多高級(jí)特性可以實(shí)現(xiàn)無(wú)限制的規(guī)模擴(kuò)展,視不同應(yīng)用環(huán)境有不同的最佳解決方案,因此需要在用于生產(chǎn)數(shù)據(jù)庫(kù)之前,最好先對(duì)各種解決方案進(jìn)行充分了解,并盡量搭建與生產(chǎn)環(huán)境負(fù)載相當(dāng)?shù)臏y(cè)試平臺(tái)進(jìn)行測(cè)試。

【編輯推薦】

  1. MySQL索引類型一覽 讓MySQL高效運(yùn)行起來(lái)
  2. 從Web查詢數(shù)據(jù)庫(kù)之PHP與MySQL篇
  3. MySQL全文檢索中Like索引的實(shí)現(xiàn)
  4. 使用調(diào)度和鎖定進(jìn)行MySQL查詢優(yōu)化
  5. MySQL基本調(diào)度策略淺析
責(zé)任編輯:yangsai 來(lái)源: IT168
相關(guān)推薦

2021-08-11 22:17:48

負(fù)載均衡LVS機(jī)制

2010-05-06 15:35:08

MySQL負(fù)載均衡

2020-06-23 16:28:25

Nginx負(fù)載均衡服務(wù)器

2020-07-28 17:27:53

Nginx 負(fù)載均衡模塊

2019-12-27 09:29:46

負(fù)載均衡算法哈希算法

2010-05-10 15:35:27

負(fù)載均衡技術(shù)

2010-04-21 11:08:57

MySQL負(fù)載均衡

2015-10-30 10:33:02

溝通程序員事業(yè)發(fā)展

2011-12-02 22:51:46

Nginx負(fù)載均衡

2020-02-12 18:45:39

負(fù)載均衡網(wǎng)站處理壓力

2019-12-10 10:13:58

HTTPNginxRedirect

2010-05-10 14:35:36

TRUNK負(fù)載均衡

2021-06-07 17:46:31

Python 3.8Python編程語(yǔ)言

2019-08-29 09:15:30

負(fù)載均衡算法備份

2024-08-06 09:47:57

2024-07-12 09:21:38

負(fù)載均衡HTTP網(wǎng)絡(luò)

2012-10-19 11:31:25

全局負(fù)載均衡本地負(fù)載均衡

2014-10-29 09:55:58

程序員代碼

2023-01-04 08:17:21

Typescript技巧欺騙性

2019-12-26 09:13:00

算法硬件軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)