工作原理
mysql的一个Plugin,集成在mysqld进程中.直接跳过了SQL的解析层,直接访问MySQL存储层.另外,HandlerSocket采用epoll和worker-thread/thread-pooling网络架构,性能更高.
HandlerSocket 安装和配置
- mariadb部分
- 之后已经加入了这个插件,如果需要安装只需要运行
install plugin handlersocket sonamee 'ahndlersocket.so'
- 配置my.cnf
[mysqld]
handlersocket_address="127.0.0.1"
handlersocket_port="9998"
handlersocket_port_wr="9999"
innodb_buffer_pool_size = 1G
然后重新运行就可以了.
- php部分:
使用composer的话
php composer.phar require tz-lom/hsphp --no-update
也就可以使用了
基本使用方法
https://github.com/tz-lom/HSPHP
//select
$c = new \HSPHP\ReadSocket();
$c->connect();$id = $c->getIndexId('data_base_name', 'table_name', '', 'id,name,some,thing,more');
$c->select($id, '=', array(42)); // SELECT WITH PRIMARY KEY
$response = $c->readResponse();
//update
$id = $c->getIndexId('data_base_name','table_name','','k,v');
$c->update($id,'=',array(100500),array(100500,42)); // Update row(k,v) with id 100500 to k = 100500, v = 42
$response = $c->readResponse(); // Has 1 if OK
性能测试
这个我没做,大概是4-5倍左右吧
网友评论