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

HandlerSocket是神馬

數(shù)據(jù)庫 MySQL
HandlerSocket是日本人akira higuchi 寫的一個MySql的插件。通過這個插件,你可以直接跟MySQL后端的存儲引擎做key-value式的交互,省去了MySQL上層的SQL解釋、打開關(guān)閉表、創(chuàng)建查詢計劃等CPU開銷。

HandlerSocket是日本人akira higuchi 寫的一個MySql的插件。通過這個插件,你可以直接跟MySQL后端的存儲引擎做key-value式的交互,省去了MySQL上層的SQL解釋、打開關(guān)閉表、創(chuàng)建查詢計劃等CPU開銷。按照作者給出的數(shù)據(jù)可以在數(shù)據(jù)全部在內(nèi)存的情況下可以達到75W的QPS查詢。

適用場景:

Innodb引擎、按主鍵、unique key或索引搜索(也就是說它的SQL的where條件必須是這些);支持limit 語句、IN、INSERT/UPDATE/DELETE。

  1. 沒有主鍵、unique key或索引搜索不行!
  2. 表必須是Innodb引擎

閑話少說,直接上安裝和測試結(jié)果。

安裝:

需要為MySQL安裝插件、PHP安裝擴展。這里就不再贅述,可以參考此篇文章http://blog.1984fox.com/read.php?30#entrymore,很詳細。

API:

谷歌code(http://code.google.com/p/php-handlersocket/)中提供了PHP擴展作者的API,這里我將每個方法的參數(shù)具體說明一下(也可以去https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/blob/master/docs-en/perl-client.en.txt參考一下perl擴展的API說明,其實實現(xiàn)都是一樣的,只不過是不同語言):

實例化:

  1. /*   
  2.  * String  $host:MySQL ip;  
  3.  * String  $port:handlersocket插件的監(jiān)聽端口,它有兩個端口可選:一個用于讀、一個用于寫   
  4.  */  
  5. $hs = new HandlerSocket($host, $port);  

打開一個數(shù)據(jù)表:

  1. /*  
  2.  * Int       $index:這個數(shù)字相當(dāng)于文件操作里的句柄,HandlerSocket的所有其他方法都會依據(jù)這個數(shù)字來操作由這個 openIndex打開的表,  
  3.  * String  $dbname:庫名  
  4.  * String  $table:表名  
  5.  * String  $key:表的“主鍵”(HandlerSocket::PRIMARY)或“索引名”作為搜索關(guān)鍵字段,這就是說表必須有主鍵或索引  
  6.  *                 個人理解:要被當(dāng)做where條件的key字段,這樣可以認為handlersocket只有一個where條件  
  7.  * String  $column'column1,column2' 所打開表的字段(以逗號隔開),就是說$table表的其他字段不會被操作  
  8.  */  
  9. $hs->openIndex($index, $dbname, $table, $key, $column); 

查詢:

  1. /*  
  2.  * Int     $index: openIndex()所用的$index 
  3.  * String  $operation:openIndex方法中指定的$key字段所用的操作符,目前支持'=''>=''<=''>',and '<';可以理解為where條件  
  4.  * Array   $value  
  5.  * Int       $number(默認是1):獲取結(jié)果的***條數(shù);相當(dāng)于SQL中l(wèi)imit的第二個參數(shù)  
  6.  * Int     $skip(默認是0):跳過去幾條;相當(dāng)于SQL中l(wèi)imit的***個參數(shù)  
  7.  */  
  8. $retval = $hs->executeSingle($index, $operation, $value, $number, $skip); 

插入(注意:此處的openIndex要用$port_wr,即讀寫端口):

  1. /*  
  2.  * Int     $index: openIndex()所用的$index 
  3.  * Array   $arr:數(shù)字元素數(shù)與openIndex的$column相同  
  4.  */  
  5. $retval = $hs->executeInsert($index, $arr); 

刪除(注意:此處的openIndex要用$port_wr,即讀寫端口):

  1. /*  
  2.  * Int     $index: openIndex()所用的$index 
  3.  * String  $operation:openIndex方法中指定的$key字段所用的操作符,目前支持'=''>=''<=''>',and '<';可以理解為where條件  
  4.  * Array   $value  
  5.  * Int     $number(默認是1):獲取結(jié)果的***條數(shù);相當(dāng)于SQL中l(wèi)imit的第二個參數(shù)  
  6.  * Int     $skip(默認是0):跳過去幾條;相當(dāng)于SQL中l(wèi)imit的***個參數(shù)  
  7.  */  
  8. $retval = $hs->executeDelete($index, $operation, $value, $number, $skip); 

更新(注意:此處的openIndex要用$port_wr,即讀寫端口):

  1. /*  
  2.  * Int     $index: openIndex()所用的$index 
  3.  * String  $operation:openIndex方法中指定的$key字段所用的操作符,目前支持'=''>=''<=''>',and '<';可以理解為where條件  
  4.  * Array   $value  
  5.  * Int       $number(默認是1):獲取結(jié)果的***條數(shù);相當(dāng)于SQL中l(wèi)imit的第二個參數(shù)  
  6.  * Int     $skip(默認是0):跳過去幾條;相當(dāng)于SQL中l(wèi)imit的***個參數(shù)  
  7.  */  
  8. $retval = $hs->executeUpdate($index, $operation, $value, $number, $skip); 

測試:

新建一個1000w條數(shù)據(jù)的用戶表,id為主鍵,包括uname、email、add_time字段,使用兩臺不同的機器做ab壓力測試:

讀測試:

并發(fā)50,5000次壓力測試:

MySQL:        min: 0.504740953445    max:13.1727859974    average: 1.05    CPU:0.7%us,  0.3%sy    use:111s

HandlerSocket:min: 0.302443981171    max:9.37712621689    average:0.736     CPU:0.4%us,  0.3%sy    use:77s

并發(fā)70,5000次壓力測試:

MySQL:           min: 0.504750013351    max:10.4482009411    average: 1.094   CPU:0.9%us,  0.4%sy    use:85s

HandlerSocket:min: 0.302488803864    max:10.3345310688    average: 0.788   CPU:0.5%us,  0.4%sy    use:62s

并發(fā)110,5000次壓力測試:

MySQL:           min:0.505280017853    max:21.3242678642    average:1.095   CPU:1.5%us,  0.7%sy    use:55s

HandlerSocket:min: 0.30281996727    max:10.6022770405    average:0.786   CPU:1.1%us,  0.7%sy    use:39s

并發(fā)150,5000次壓力測試:

MySQL:           min: 0.505041122437    max:28.8087069988    average:1.073   CPU:1.8%us,  0.9%sy    use:61s

HandlerSocket:min: 0.302739143372    max:12.878344059    average:0.774   CPU:1.0%us,  0.9%sy    use:30s

總結(jié):

共同點:并發(fā)越高,性能越好

hs系統(tǒng)占用和執(zhí)行時間都少于MySQL 性能約好30%~40%

寫測試:

并發(fā)50,5000次壓力測試:

MySQL:           min: 0.507106781006 max: 4.95259904861 average: 0.594   CPU:0.76%us, 0.49%sy    use:62s

HandlerSocket:min: 0.303457021713 max: 7.0854101181  average: 0.383   CPU:0.4%us,  0.2%sy     use:43s

并發(fā)70,5000次壓力測試:

MySQL:        min: 0.508066892624 max: 12.8451189995 average: 0.659   CPU:1.0%us,  0.6%sy     use:51s

HandlerSocket:min: 0.30427312851  max: 12.4244120121 average: 0.417   CPU:0.53%us, 0.29%sy    use:32s

并發(fā)90,5000次壓力測試:

MySQL:        min: 0.507676839828 max: 12.8466610909 average: 0.689   CPU:1.3%us,  0.72%sy    use:45s

HandlerSocket:min: 0.304312229156 max: 12.4680581093 average: 0.465   CPU:0.66%us, 0.38%sy    use:29s

并發(fā)110,5000次壓力測試:

MySQL:        min: 0.507092952728 max: 11.7785778046 average: 0.775   CPU:1.34%us, 0.82%sy    use:45s (13條未寫入)

HandlerSocket:min: 0.219769954681 max: 12.6269509792 average: 0.556   CPU:0.63%us, 0.37%sy    use:32s (15條未寫入)

并發(fā)150,5000次壓力測試:

MySQL:        min: 0.507570981979 max: 13.4538660049 average: 0.75    CPU:1.9%us,  1.1%sy     use:29s (寫多1條)

HandlerSocket:min: 0.304651975632 max: 16.3402500153 average: 0.555   CPU:0.7%us,  0.43%sy    use:26s (8條未寫入)

總結(jié):

共同點:并發(fā)越高,性能越好

hs系統(tǒng)占用和執(zhí)行時間都少于MySQL 性能約好50%~60%

測試結(jié)果確實比較明顯,HandlerSocket可以在高并發(fā)、簡單表操作的環(huán)境下替代MySQL。

原文鏈接:http://www.cnblogs.com/yangligogogo/articles/1969823.html

 

【編輯推薦】

  1. 數(shù)據(jù)庫日常維護常用的腳本部分收錄
  2. SQL與NoSQL——MySQL與NoSQL的融合
  3. MySQL中的NoSQL插件
  4. 甲骨文發(fā)布***BI軟件 添加對iPad支持
  5. 微軟WP7本地數(shù)據(jù)庫之Sterling編程技巧
責(zé)任編輯:艾婧 來源: 博客園
相關(guān)推薦

2014-09-11 15:26:41

程序員

2011-04-06 16:03:20

NoSQLHandlerSock

2017-05-31 08:45:03

2011-09-09 16:22:21

centosHandlerSock

2011-05-16 10:29:44

HandlerSockNoSQL

2015-07-23 09:19:45

輕碼云特訓(xùn)營

2015-10-13 17:45:07

2015-10-14 17:56:54

神馬搜索藍光模式

2011-01-07 10:18:28

RSSWeb

2016-11-28 14:11:32

搜索

2015-10-14 18:07:02

神馬藍光模式

2014-05-07 11:11:08

移動搜索神馬搜索GMIC

2016-07-05 13:50:35

搜索

2013-08-21 15:47:05

InnoDBMemcachedMemcached插件

2011-04-06 19:31:08

大話IT云計算

2016-09-14 21:16:17

服務(wù)

2016-11-16 14:51:37

搜索市場

2016-06-30 17:29:53

搜索

2016-06-23 16:09:30

搜索

2015-01-20 21:56:50

有話通
點贊
收藏

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