handlersocket原理和效能測試

2021-09-01 03:38:32 字數 1375 閱讀 6287

1.handlersocket原理

都說handlersocket速度不是一般的快,公司也想在這方面研究一番,順便我也學習下mysql的原理,就做了這個測試:

在介紹handlersocket之前首先來看一下mysql的原理:

前端應用(php python...)通過使用者名稱和密碼連線到mysql伺服器,在通過mysql的「中間層」進行語法分析和優化等,最後交給儲存引擎(myisma和innodb等)。

那麼我所理解的handlersocket是怎樣的?

我是根據什麼猜測(在沒有看源**之前,只能猜測),handlersocket在連線mysql時,不用輸入使用者名稱和密碼,一定是跳過了驗證階段;handlersocket在執行「sql」語句時,也別具一格,為什麼這麼說,因為在handlersocket嚴厲,根本沒有所謂的sql語句,他所執行的單純的是呼叫函式,例如:

hs.get('huati', 't_topic', ["f_tid", "f_tname"],'13')

在huati資料庫,t_topic表查詢主鍵等於13的f_tid和f_tname欄位,有這句話可以看出來,完全是函式式的呼叫,這也省去了mysql的語法解析,也許是他快的主要原因吧!

關於handlersocket的詳細架構,可能之後會補上,這裡就不多說啦。直接進入測試階段。

2.handlersocket測試

首先介紹下測試環境:

我用了兩種語言python和php,為什麼要用兩種語言?之後會解釋。

首先來看一下python用mysql方式連線和用handlersocket連線的效能差別

x:併發程序數 y:每秒鐘處理請求數

上圖藍色:mysql自身呼叫插入語句(insert);紅色:handlersocket 插入時資料。兩種方式的請求數均隨著併發量的增加而增加,但handlersocket表現的更為明顯。下面來看另一張圖:

由於handlersocket有兩種查詢方式,所以我把兩種(find和get)全部列出來,坐下比較,發現基本重合。這時覺得handlersocket沒有網上說的那麼神,隨後研究了下原因,歸結如下:主要原因可能是由於,python的mysql介面使用c寫的,而我們安裝的handlersocket介面使用python寫的,這裡的比較資料就完全沒有可比性了,這也決定了我換用php再做一次測試:

到此為止,已經看到handlersocket的效能優越性,筆者現在質疑,為什麼這麼好的東西,應用範圍那麼小,目前所知道的也只有飛信再用,之後上網找到一句話,看後深有感觸,基準測試是由乙個對這個產品感興趣的一方完成的話,內在的不信任感會油然而生。套用公司的一句話「我們不追求最先進的科技,只運用最穩定的技術」

3.總結

在以後所有測試中,不應該對任何測試產品抱有內心的崇拜,否則會讓自己迷茫。

4.附錄

[email protected]

handlersocket原理和效能測試

1.handlersocket原理 都說handlersocket速度不是一般的快,公司也想在這方面研究一番,順便我也學習下mysql的原理,就做了這個測試 在介紹handlersocket之前首先來看一下mysql的原理 前端應用 php python.通過使用者名稱和密碼連線到mysql伺服器,...

MySQL外掛程式 HandlerSocket應用

前段時間偶然的機會了解到handlersocket,並在自己的乙個demo中得以應用,在此做下總結。一 handlersocket是什麼?handlersocket是akira higuchi 寫的乙個mysql的外掛程式。以mysql daemon plugin的形式提供類似nosql的網路服務,...

DNS原理 HTTP原理 TCP原理

開啟網頁 輸入 檢視本地的dns庫是否存在該 的網域名稱與對應ip位址 接下有兩種情況 本地存在該 網域名稱對應的ip hosts檔案 然後我們直接根據本地快取的dns進行解析,並訪問該網域名稱對應的ip位址,在進行tcp的三次握手,進行與 的連線,當然我們訪問 完畢之後,又進行了四次揮手斷開 本地...