最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql連接數(shù)設(shè)置和獲取的方法

 更新時(shí)間:2021年01月03日 10:08:19   作者:碼客  
這篇文章主要介紹了Mysql連接數(shù)設(shè)置和獲取的方法,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下

獲取連接數(shù)

--- 獲取最大連接數(shù)
SHOW VARIABLES LIKE '%max_connections%'; 

--- 獲取連接列表
SHOW PROCESSLIST; 
--- 獲取連接列表
SHOW FULL PROCESSLIST; 

--- 獲取當(dāng)前的鏈接信息 Threads_connected是當(dāng)前的連接數(shù)
SHOW STATUS LIKE 'Threads%';

--- 獲取連接統(tǒng)計(jì) 比如歷史最大連接數(shù)以及最大連接時(shí)長(zhǎng)等
SHOW STATUS LIKE '%Connection%';
mysql> SHOW STATUS LIKE 'Threads%';
+-------------------+-------+
| Variable_name   | Value |
+-------------------+-------+
| Threads_cached  | 58  |
| Threads_connected | 57  |  ---這個(gè)數(shù)值指的是打開的連接數(shù)
| Threads_created  | 3676 |
| Threads_running  | 4   |  ---這個(gè)數(shù)值指的是激活的連接數(shù),這個(gè)數(shù)值一般遠(yuǎn)低于connected數(shù)值
+-------------------+-------+

Threads_connected 跟show processlist結(jié)果相同,表示當(dāng)前連接數(shù)。準(zhǔn)確的來(lái)說(shuō),Threads_running是代表當(dāng)前并發(fā)數(shù)

設(shè)置連接數(shù)

臨時(shí)設(shè)置

mysql>show variables like 'max_connections'; --- 查可以看當(dāng)前的最大連接數(shù)
msyql>set global max_connections=1000; --- 設(shè)置最大連接數(shù)為1000,可以再次查看是否設(shè)置成功
mysql>exit --- 退出

永久設(shè)置
可以在/etc/my.cnf里面設(shè)置數(shù)據(jù)庫(kù)的最大連接數(shù)

[mysqld]
max_connections = 1000

項(xiàng)目中連接池設(shè)置

下面公式由 PostgreSQL 提供,不過(guò)底層原理是不變的,它適用于市面上絕大部分?jǐn)?shù)據(jù)庫(kù)產(chǎn)品。還有,你應(yīng)該模擬預(yù)期的訪問(wèn)量,并通過(guò)下面的公式先設(shè)置一個(gè)偏合理的值,然后在實(shí)際的測(cè)試中,通過(guò)微調(diào),來(lái)尋找最合適的連接數(shù)大小。

連接數(shù) = ((核心數(shù) * 2) + 有效磁盤數(shù))

核心數(shù)不應(yīng)包含超線程(hyper thread),即使打開了超線程也是如此,如果熱點(diǎn)數(shù)據(jù)全被緩存了,那么有效磁盤數(shù)實(shí)際是0,隨著緩存命中率的下降,有效磁盤數(shù)也逐漸趨近于實(shí)際的磁盤數(shù)。另外需要注意,這一公式作用于SSD 的效果如何,尚未明了。
好了,按照這個(gè)公式,如果說(shuō)你的服務(wù)器 CPU 是 4核 i7 的,連接池大小應(yīng)該為 ((4*2)+1)=9。

取個(gè)整, 我們就設(shè)置為 10 吧。你這個(gè)行不行?。?0 也太小了吧!

你要是覺(jué)得不太行的話,可以跑個(gè)性能測(cè)試看看,我們可以保證,它能輕松支撐 3000 用戶以 6000 TPS 的速率并發(fā)執(zhí)行簡(jiǎn)單查詢的場(chǎng)景。你還可以將連接池大小超過(guò) 10,那時(shí),你會(huì)看到響應(yīng)時(shí)長(zhǎng)開始增加,TPS 開始下降。

你需要的是一個(gè)小連接池,和一個(gè)等待連接的線程隊(duì)列

假設(shè)說(shuō)你有 10000 個(gè)并發(fā)訪問(wèn),而你設(shè)置了連接池大小為 10000,你怕是石樂(lè)志哦。

改成 1000,太高?改成 100?還是太多了。

你僅僅需要一個(gè)大小為 10 數(shù)據(jù)庫(kù)連接池,然后讓剩下的業(yè)務(wù)線程都在隊(duì)列里等待就可以了。

連接池中的連接數(shù)量大小應(yīng)該設(shè)置成:數(shù)據(jù)庫(kù)能夠有效同時(shí)進(jìn)行的查詢?nèi)蝿?wù)數(shù)(通常情況下來(lái)說(shuō)不會(huì)高于 2*CPU核心數(shù))。

你應(yīng)該經(jīng)常會(huì)看到一些用戶量不是很大的 web 應(yīng)用中,為應(yīng)付大約十來(lái)個(gè)的并發(fā),卻將數(shù)據(jù)庫(kù)連接池設(shè)置成 100, 200 的情況。請(qǐng)不要過(guò)度配置您的數(shù)據(jù)庫(kù)連接池的大小。

是不是越大約好

模擬 9600 個(gè)并發(fā)線程來(lái)操作數(shù)據(jù)庫(kù),每?jī)纱螖?shù)據(jù)庫(kù)操作之間 sleep 550ms,注意,視頻中剛開始設(shè)置的線程池大小為 2048。

讓我們來(lái)看看數(shù)據(jù)庫(kù)連接池的大小為 2048 性能測(cè)試結(jié)果的鬼樣子:

每個(gè)請(qǐng)求要在連接池隊(duì)列里等待 33ms,獲得連接之后,執(zhí)行SQL需要耗時(shí)77ms, CPU 消耗維持在 95% 左右;

接下來(lái),我們將連接池的大小改小點(diǎn),設(shè)置成 1024,其他測(cè)試參數(shù)不變,結(jié)果咋樣?

“這里,獲取連接等待時(shí)長(zhǎng)基本不變,但是 SQL 的執(zhí)行耗時(shí)降低了!”

哎呦,有長(zhǎng)進(jìn)哦!

接下來(lái),我們?cè)僭O(shè)置小些,連接池的大小降低到 96,并發(fā)數(shù)等其他參數(shù)不變,看看結(jié)果如何:

每個(gè)請(qǐng)求在連接池隊(duì)列中的平均等待時(shí)間為 1ms, SQL 執(zhí)行耗時(shí)為 2ms.

我去!什么鬼?

我們沒(méi)調(diào)整任何東西,僅僅只是將數(shù)據(jù)庫(kù)連接池的大小降低了,這樣,就能把之前平均 100ms 響應(yīng)時(shí)間縮短到了 3ms。吞吐量指數(shù)級(jí)上升啊!

你這也太溜了!

為啥有這種效果?

我們不妨想一下,為啥 Nginx 內(nèi)部?jī)H僅使用了 4 個(gè)線程,其性能就大大超越了 100 個(gè)進(jìn)程的 Apache HTTPD 呢?追究其原因的話,回想一下計(jì)算機(jī)科學(xué)的基礎(chǔ)知識(shí),答案其實(shí)非常明顯。

要知道,即使是單核 CPU 的計(jì)算機(jī)也能“同時(shí)”運(yùn)行著數(shù)百個(gè)線程。但我們其實(shí)都知道,這只不過(guò)是操作系統(tǒng)快速切換時(shí)間片,跟我們玩的一個(gè)小把戲罷了。

一核 CPU同一時(shí)刻只能執(zhí)行一個(gè)線程,然后操作系統(tǒng)切換上下文,CPU 核心快速調(diào)度,執(zhí)行另一個(gè)線程的代碼,不停反復(fù),給我們?cè)斐闪怂羞M(jìn)程同時(shí)運(yùn)行假象。

其實(shí),在一核 CPU 的機(jī)器上,順序執(zhí)行A和B永遠(yuǎn)比通過(guò)時(shí)間分片切換“同時(shí)”執(zhí)行A和B要快,其中原因,學(xué)過(guò)操作系統(tǒng)這門課程的童鞋應(yīng)該很清楚。一旦線程的數(shù)量超過(guò)了 CPU 核心的數(shù)量,再增加線程數(shù)系統(tǒng)就只會(huì)更慢,而不是更快,因?yàn)檫@里涉及到上下文切換耗費(fèi)的額外的性能。

說(shuō)到這里,應(yīng)該恍然大悟了 ……

以上就是Mysql連接數(shù)設(shè)置和獲取的方法的詳細(xì)內(nèi)容,更多關(guān)于Mysql連接數(shù)設(shè)置和獲取的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mysql:The user specified as a definer (''xxx@''%'') does not exist的解決方案

    Mysql:The user specified as a definer (''xxx@''%'') does not

    今天小編就為大家分享一篇關(guān)于Mysql:The user specified as a definer ('xxx@'%') does not exist的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Linux下MySQL安裝配置 MySQL配置參數(shù)詳解

    Linux下MySQL安裝配置 MySQL配置參數(shù)詳解

    Linux下MySQL安裝配置 MySQL配置參數(shù)詳解,在linux下配置mysql的朋友可以參考下。
    2011-07-07
  • 在ubuntu中重置mysql服務(wù)器root密碼的方法

    在ubuntu中重置mysql服務(wù)器root密碼的方法

    在ubuntu下安裝了mysql 5 server,結(jié)果不知道什么原因,安裝時(shí)輸入的root帳號(hào)密碼在使用時(shí)無(wú)論如何都不能通過(guò)數(shù)據(jù)庫(kù)服務(wù)器的驗(yàn)證。無(wú)奈只有重置mysql的root帳號(hào)密碼。查了一下,用了以下方法成功的重置了root帳號(hào)密碼
    2012-10-10
  • MySQL中InnoDB存儲(chǔ)引擎的鎖的基本使用教程

    MySQL中InnoDB存儲(chǔ)引擎的鎖的基本使用教程

    這篇文章主要介紹了MySQL中InnoDB存儲(chǔ)引擎的鎖的基本概念,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • IDEA 鏈接Mysql數(shù)據(jù)庫(kù)并執(zhí)行查詢操作的完整代碼

    IDEA 鏈接Mysql數(shù)據(jù)庫(kù)并執(zhí)行查詢操作的完整代碼

    這篇文章主要介紹了IDEA 鏈接Mysql數(shù)據(jù)庫(kù)并執(zhí)行查詢操作的完整代碼,代碼不難,詳細(xì)大家看完本文肯定有意向不到的收獲,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • MySQL連接異常:Communications link failure問(wèn)題及解決

    MySQL連接異常:Communications link failure問(wèn)題及解決

    這篇文章主要介紹了MySQL連接異常:Communications link failure問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL億級(jí)數(shù)據(jù)平滑遷移雙寫方案實(shí)戰(zhàn)

    MySQL億級(jí)數(shù)據(jù)平滑遷移雙寫方案實(shí)戰(zhàn)

    預(yù)約業(yè)務(wù)與其他業(yè)務(wù)數(shù)據(jù)表存儲(chǔ)在同一個(gè)數(shù)據(jù)庫(kù),當(dāng)其他業(yè)務(wù)出現(xiàn)慢SQL等異常時(shí),會(huì)影響到預(yù)約業(yè)務(wù),為了提高系統(tǒng)穩(wěn)定性和數(shù)據(jù)隔離性,需要將預(yù)約數(shù)據(jù)表從原來(lái)的數(shù)據(jù)庫(kù)中遷移出來(lái),單獨(dú)建立數(shù)據(jù)庫(kù),涉及到的讀寫場(chǎng)景多,改造成本大,采用 Mybatis插件實(shí)現(xiàn)遷移所需的雙寫等功能
    2024-08-08
  • MySQL備份Shell腳本的實(shí)現(xiàn)

    MySQL備份Shell腳本的實(shí)現(xiàn)

    本文主要介紹了Shell腳本來(lái)自動(dòng)備份MySQL數(shù)據(jù)庫(kù),腳本會(huì)備份指定數(shù)據(jù)庫(kù)或所有數(shù)據(jù)庫(kù),按日期命名備份文件以防止覆蓋,并自動(dòng)刪除N天前的舊備份以節(jié)省空間,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22)的解決方法

    MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errc

    File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index’ file
    2013-08-08
  • MySQL InnoDB中意向鎖的作用及原理

    MySQL InnoDB中意向鎖的作用及原理

    意向鎖是由InnoDB在操作數(shù)據(jù)之前自動(dòng)加的,本文主要介紹了MySQL InnoDB中意向鎖的作用及原理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05

最新評(píng)論

连江县| 常州市| 黄冈市| 东丰县| 舞阳县| 德安县| 台州市| 灯塔市| 汾西县| 关岭| 岫岩| 聂拉木县| 吴桥县| 宜兰县| 澄江县| 盐边县| 建始县| 兰西县| 太保市| 渝北区| 应城市| 静乐县| 名山县| 五台县| 黔江区| 沧州市| 重庆市| 漯河市| 疏附县| 瑞金市| 兰坪| 新干县| 泊头市| 隆回县| 额敏县| 宿州市| 喀喇| 常州市| 班玛县| 乌审旗| 西充县|