自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

獲得更為強大的MySQL數(shù)據(jù)庫方案

數(shù)據(jù)庫 MySQL
以下的文章主要介紹的是通過什么方案可以獲得更強大,更為好用的MySQL數(shù)據(jù)庫的實際操作步驟,以下就是文章的具體內(nèi)容描述。

在一般的情況下當(dāng)MySQL數(shù)據(jù)庫逐漸變慢的時候,我們就可以通過一些實際操作使其變的更為實用,那么都有哪些方法能實現(xiàn)這一目的呢?以下的文章主要向大家介紹如何才能實現(xiàn)這些美好的愿望。

閱讀本系列文章后,將有助于擴大你的視野,更好地規(guī)劃你將來的需要,本系列的***篇文章“更快,更強

MySQL”討論了查詢優(yōu)化和硬件調(diào)整,包括增加額外的服務(wù)器和應(yīng)用程序變更,本文將介紹如何通過分區(qū)和負(fù)載均衡解決方案讓你的MySQL變得更大更好。

更大的MySQL

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

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

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

因為許多Web應(yīng)用程序是通過會話來識別用戶的,通過會話將它們分配到不同的從數(shù)據(jù)庫實例顯得很有道理。例如A-G,H-O,P-Z數(shù)據(jù)庫實例可能在工作,這時可以通過用戶名的哈希值,或userid將用戶分配到不同的服務(wù)器上,這就是所謂的分區(qū)鍵,選擇分區(qū)鍵時需要慎重決定。

因為它會影響到你如何構(gòu)建從數(shù)據(jù)庫實例,主要是考慮如何讓這些服務(wù)器平均承擔(dān)工作負(fù)載,如果選擇得不好,假設(shè)從數(shù)據(jù)庫倒掉,也可能會引起數(shù)據(jù)中斷。

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

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

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

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

檢查過時數(shù)據(jù)是一個更好的方法,如果你有報告查詢在夜間運行,這種方法可能工作得很好,你只需要確保復(fù)制趕得上進(jìn)度即可。

另一個方法是通過版本號跟蹤數(shù)據(jù)庫變更,在讀取數(shù)據(jù)之前確定數(shù)據(jù)是否是***的版本。

***,MySQL提供了一個函數(shù)master_pos_wait,它可以確定從數(shù)據(jù)庫更新到哪個時間點了。

2、功能分區(qū)

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

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

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

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

小結(jié)

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

【編輯推薦】

  1. Oracle SQL條件順序?qū)π阅苡惺裁礃拥挠绊懀?/a>
  2. Oracle死鎖進(jìn)程的關(guān)閉實操
  3. Oracle sqlplus命令的詳細(xì)解析
  4. Oracle釋放undo表空間的實際操作步驟
  5. 實現(xiàn)Oracle跨服務(wù)器的具體步驟
     
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2018-08-24 13:58:13

數(shù)據(jù)庫MySQL備份

2011-03-09 08:53:02

MySQL優(yōu)化集群

2018-05-02 08:48:58

Raid存儲MySQL

2019-10-21 08:08:34

MySQL數(shù)據(jù)庫主鍵

2011-07-06 10:49:50

MySQL優(yōu)化

2010-05-14 11:04:17

連接MySQL

2011-07-06 14:12:20

MySQLPercona

2011-03-07 16:42:05

MySQL數(shù)據(jù)庫安全

2010-06-09 14:19:35

導(dǎo)入MySQL數(shù)據(jù)庫

2010-05-27 18:24:09

MySQL數(shù)據(jù)庫密碼

2010-06-12 13:47:30

連接MySQL 數(shù)據(jù)庫

2011-03-28 13:11:18

MySQL數(shù)據(jù)庫安全

2010-06-10 17:19:05

MySQL數(shù)據(jù)庫

2010-05-21 13:48:36

MySQL數(shù)據(jù)庫

2010-05-31 16:17:56

MySQL數(shù)據(jù)庫性能

2010-06-02 13:58:30

MySQL數(shù)據(jù)庫性能

2010-05-24 13:14:19

創(chuàng)建MySQL

2010-06-11 11:14:26

MySQL數(shù)據(jù)庫

2010-06-13 17:53:18

安裝MySQL數(shù)據(jù)庫

2010-05-21 14:01:23

MySQL數(shù)據(jù)庫
點贊
收藏

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