亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

回憶前篇文章我們已經(jīng)知道給MySQL創(chuàng)建用戶時(shí)候,需要?jiǎng)?chuàng)建用戶名和允許連接服務(wù)器的主機(jī),這就說明了我們登錄數(shù)據(jù)庫(kù)不一定是本地連接,還包括遠(yuǎn)程連接,那么當(dāng)遠(yuǎn)程連接時(shí)候,那么就需要建立網(wǎng)絡(luò)來進(jìn)行數(shù)據(jù)通訊。所以本節(jié)討論下長(zhǎng)連接、短連接和連接池的概念。

 

mysql開發(fā)理論:搞懂什么是長(zhǎng)連接,短連接和連接池

 

 


短連接

短連接就是我們開發(fā)的應(yīng)用程序需要訪問數(shù)據(jù)庫(kù)時(shí)候,需要建立數(shù)據(jù)連接,執(zhí)行SQL操作,關(guān)閉連接,用JAVA中的偽代碼來描述一下這個(gè)過程:

conn = session.onpenConnection();
conn.execute('SQL命令');
session.close();

簡(jiǎn)單講就是每一次操作數(shù)據(jù)庫(kù),都要執(zhí)行一次上述操作。它的弊端就是:如果網(wǎng)絡(luò)速度不是很理想的情況下,短連接的會(huì)消耗大量的系統(tǒng)資源,在生產(chǎn)環(huán)境中,業(yè)務(wù)很多的話,可能1秒內(nèi)幾千個(gè)連接,如果都是短連接,且sql處理慢的話,連接關(guān)閉不及時(shí),那么資源耗盡速度可能發(fā)生在幾分鐘甚至幾秒,所以我們系統(tǒng)不大可能一直是短連接。

長(zhǎng)連接

長(zhǎng)連接是指我們的程序和數(shù)據(jù)庫(kù)連接之后,就一直打開,后面程序來訪問相同數(shù)據(jù)庫(kù)就復(fù)用該連接,使用長(zhǎng)連接主要是考慮到減少短連接連接的開銷。有資料顯示Mysql的連接比其他數(shù)據(jù)庫(kù)要快。

目前php程序連接數(shù)據(jù)庫(kù)是默認(rèn)采用長(zhǎng)連接模式,當(dāng)它要建立連接來訪問數(shù)據(jù)庫(kù)時(shí)候,PHP會(huì)檢查是否有相同的連接,存在的話就復(fù)用該連接,不存在就新建一個(gè)長(zhǎng)連接。怎么認(rèn)為是相同連接呢,其實(shí)很簡(jiǎn)單,只要用戶名密碼相同,且連接同一個(gè)IP的主機(jī)數(shù)據(jù)庫(kù),就認(rèn)為相同。從程序來講,作為客戶端,使用長(zhǎng)連接可以不用每次都創(chuàng)建連接對(duì)象,如果業(yè)務(wù)很繁忙的話,使用長(zhǎng)連接時(shí)候,程序性能會(huì)很高效。但是PHP長(zhǎng)連接也會(huì)導(dǎo)致數(shù)據(jù)庫(kù)連接超過閑置,或者內(nèi)存耗盡的問題。需要合理的設(shè)計(jì)和優(yōu)化。

但是從服務(wù)器端來看,維持一個(gè)連接會(huì)占用服務(wù)器內(nèi)存,如果所有程序都是長(zhǎng)連接,肯定會(huì)有部分連接處于閑置狀態(tài),但是無論什么狀態(tài)連接,都占用內(nèi)存,這會(huì)造成服務(wù)器端的資源浪費(fèi),也顯得不是很高效。

對(duì)于擴(kuò)展性好的系統(tǒng),往往大部分訪問不需要連接數(shù)據(jù)庫(kù),它們會(huì)采用緩存的方式來避免頻繁連接數(shù)據(jù)庫(kù)。

 

連接池

正是因?yàn)闊o論長(zhǎng)連接和短連接都有一些弊端,造成創(chuàng)建連接或者維護(hù)連接開銷導(dǎo)致所耗資源過多,此時(shí)需要增加連接池來改進(jìn)性能。它是一個(gè)預(yù)先創(chuàng)建的連接緩沖池,考慮到某些數(shù)據(jù)進(jìn)行連接之后,處理時(shí)間過長(zhǎng),而不想它閑置,允許給其他線程使用。一般現(xiàn)在的應(yīng)用服務(wù)器都帶有連接池組件,允許應(yīng)用程序,客戶端來連接,應(yīng)用服務(wù)器維護(hù)著連接池的整個(gè)生命周期。

數(shù)據(jù)庫(kù)連接池技術(shù)的思想非常簡(jiǎn)單,將數(shù)據(jù)庫(kù)連接作為對(duì)象存儲(chǔ)在一個(gè)Vector對(duì)象中,一旦數(shù)據(jù)庫(kù)連接建立后,不同的數(shù)據(jù)庫(kù)訪問請(qǐng)求就可以共享這些連接,這樣,通過復(fù)用這些已經(jīng)建立的數(shù)據(jù)庫(kù)連接,可以克服無論長(zhǎng)連接和短連接缺點(diǎn),極大地節(jié)省系統(tǒng)資源和時(shí)間。

寫在最后

在與數(shù)據(jù)庫(kù)有關(guān)的應(yīng)用開發(fā)中,數(shù)據(jù)庫(kù)連接的管理是一個(gè)難點(diǎn)。所以我們要不斷的優(yōu)化連接池的參數(shù)配置,配合性能壓測(cè),達(dá)到一個(gè)理想的性能指標(biāo)值。

如果本文對(duì)你有用,請(qǐng)加關(guān)注,后續(xù)會(huì)有更多的運(yùn)維開發(fā)經(jīng)驗(yàn)。

分享到:
標(biāo)簽:連接 mysql
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定