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

一個(gè)比c3p0快200倍的數(shù)據(jù)庫(kù)連接池,這么牛?

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
連接池是一種常用的技術(shù),為什么需要連接池呢?這個(gè)需要從TCP說(shuō)起。
  • 為什么需要連接池
  • 什么是 HikariCP
  • 為什么 HikariCP 會(huì)那么快
  • 與 Druid 對(duì)比
  • 如何選擇

什么是數(shù)據(jù)庫(kù)連接池:

連接池是一種常用的技術(shù),為什么需要連接池呢?這個(gè)需要從TCP說(shuō)起。假如我們的服務(wù)器跟數(shù)據(jù)庫(kù)沒(méi)有部署在同一臺(tái)機(jī)器,那么,服務(wù)器每次查詢(xún)數(shù)據(jù)庫(kù)都要先建立連接,一般都是TCP鏈接,建立連接就需要3次握手了,假設(shè)后臺(tái)服務(wù)跟數(shù)據(jù)庫(kù)的單程的訪問(wèn)時(shí)間需要10ms,那么光是建立連接就花了30ms,并且TCP還有慢啟動(dòng)的機(jī)制,實(shí)際上一次查詢(xún)可能還不止1次TCP來(lái)回,查詢(xún)效率就會(huì)大大降低。

為什么需要連接池:

為了解決上述問(wèn)題,我們就需要維護(hù)一些長(zhǎng)鏈接,這樣就不用每次都去建立連接,畢竟建立連接除了占用時(shí)間,還需要一些其他的系統(tǒng)資源。另外的好處,連接池讓我們更加容易地管理,一方面是可以避免數(shù)據(jù)庫(kù)資源都被某幾個(gè)API占據(jù),另一方面也可以避免資源泄露。

什么是HikariCP

HikariCP是由在日本生活的美國(guó)人程序員開(kāi)源的一個(gè)數(shù)據(jù)庫(kù)連接池組件,代碼非常輕量,并且速度非常的快。根據(jù)官方提供的數(shù)據(jù),在i7,開(kāi)啟32個(gè)線程32個(gè)連接的情況下,進(jìn)行隨機(jī)數(shù)據(jù)庫(kù)讀寫(xiě)操作,HikariCP的速度是現(xiàn)在常用的C3P0數(shù)據(jù)庫(kù)連接池的數(shù)百倍。

在SpringBoot2.0中,官方也是推薦使用HikariCP。

 

為什么HikariCP會(huì)那么快

1.字節(jié)碼更加精簡(jiǎn),所以可以加載更多代碼到緩存。

2.實(shí)現(xiàn)了一個(gè)無(wú)鎖的集合類(lèi)型,來(lái)減少并發(fā)造成的資源競(jìng)爭(zhēng)。

3.使用了自定義的數(shù)組類(lèi)型,相對(duì)與ArrayList極大地提升了性能。

4.針對(duì)CPU的時(shí)間片算法進(jìn)行優(yōu)化,盡可能在一個(gè)時(shí)間片里面完成各種操作。

與Druid對(duì)比

在github上有網(wǎng)友貼出了阿里巴巴Druid與hikari的對(duì)比,認(rèn)為hikari在性能上是完全秒殺阿里巴巴的Druid連接池的。

對(duì)此,阿里的工程師也做了一定的回應(yīng),說(shuō)Druid的性能稍微差點(diǎn)是鎖機(jī)制的不同,并且Druid提供了更豐富的功能,兩者的側(cè)重點(diǎn)不一樣。

 

如何選擇:

選擇哪一款就見(jiàn)仁見(jiàn)智了,不過(guò)兩款都是開(kāi)源產(chǎn)品,阿里的Druid有中文的開(kāi)源社區(qū),交流起來(lái)更加方便,并且經(jīng)過(guò)阿里多個(gè)系統(tǒng)的實(shí)驗(yàn),想必也是非常的穩(wěn)定,而Hikari是SpringBoot2.0默認(rèn)的連接池,全世界使用范圍也非常廣,對(duì)于大部分業(yè)務(wù)來(lái)說(shuō),使用哪一款都是差不多的,畢竟性能瓶頸一般都不在連接池。大家可根據(jù)自己的喜好自由選擇。

 

責(zé)任編輯:龐桂玉 來(lái)源: 數(shù)據(jù)庫(kù)開(kāi)發(fā)
相關(guān)推薦

2015-10-29 16:59:47

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

2018-07-20 14:50:43

Java數(shù)據(jù)庫(kù)連接池

2009-07-15 11:14:30

c3p0連接池

2009-09-22 17:53:09

Hibernate C

2021-05-12 07:32:58

數(shù)據(jù)庫(kù)C3P0項(xiàng)目

2022-07-19 13:51:47

數(shù)據(jù)庫(kù)Hikari連接池

2009-09-22 14:44:18

Hibernate.c

2020-11-06 14:40:50

數(shù)據(jù)庫(kù)MySQLClickHouse

2013-06-17 10:25:16

連接池Java

2009-06-24 07:53:47

Hibernate數(shù)據(jù)

2010-03-18 15:09:15

python數(shù)據(jù)庫(kù)連接

2019-11-27 10:31:51

數(shù)據(jù)庫(kù)連接池內(nèi)存

2021-07-08 10:23:53

MYSQL存儲(chǔ)數(shù)據(jù)庫(kù)

2015-04-27 09:50:45

Java Hibern連接池詳解

2025-01-16 10:30:49

2022-11-11 09:41:04

連接池微服務(wù)數(shù)據(jù)庫(kù)

2017-06-22 14:13:07

PythonMySQLpymysqlpool

2009-08-10 17:34:42

C#數(shù)據(jù)庫(kù)連接池

2018-10-10 14:27:34

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

2009-06-16 09:25:31

JBoss配置
點(diǎn)贊
收藏

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