MySQL HandleSocket

工作原理

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倍左右吧

你可能感兴趣的:(MySQL HandleSocket)