HandlerSocket是日本人akira higuchi 写的一个MySql的插件。通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释、打开关闭表、创建查询计划等CPU开销。按照作者给出的数据可以在数据全部在内存的情况下可以达到75W的QPS查询。总之,它对mysql数据库的操作比mysql本身的操作语句快很多。
适用场景:
Innodb引擎、按主键、unique key或索引搜索(也就是说它的SQL的where条件必须是这些);支持limit 语句、IN、INSERT/UPDATE/DELETE。
1.没有主键、unique key或索引搜索不行!
2.表必须是Innodb引擎
安装HandlerSocket
mysql需要5.1或者以后版本。
1.下载
http://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL
获取 ahiguti-HandlerSocket-Plugin-for-MySQL-1.0.6-71-g159ea6d.tar.gz
上传到LINUX目录/usr/local/src/ 下
mysql 5.15.1之后的版本只能用hangdlersocket1.1.1之后的版本 否则make时会报错。
1.1.1版本下载地址:
https://github.com/DeNA/HandlerSocket-Plugin-for-MySQL/releases
2.安装
cd /usr/local/src/tar zvfx ahiguti-HandlerSocket-Plugin-for-MySQL-1.0.6-71-g159ea6d.tar.gzcd ahiguti-HandlerSocket-Plugin-for-MySQL-159ea6d/ ./autogen.sh./configure --with-mysql-source=/usr/local/src/mysql-5.1.47 --with-mysql-bindir=/usr/local/app/mysql/bin/ --with-mysql-plugindir=/usr/local/app/mysql/lib/mysql/plugin/ --prefix=/usr/local/app/mysql
注:plugindir的对应目录一定要提前创建好 plugin目录 或者找到mysql自带的plugin目录 总之就是要路径对应起来 否则会报错误
libtool: link: only absolute run-paths are allowed
其中
–with-mysql-source MYSQL源码目录
–with-mysql-binddir MYSQL安装后的BIN目录
–with-mysql-plugindir MYSQL安装后PLUGIN的目录
(***************小插曲************************
笔者在configure的时候遇到的问题:
checking mysql source… yes: Using /usr/local/src/mysql-5.1.47, version 5.1.47
checking for mysql_config… /usr/bin/mysql_config
checking mysql binary… yes: Using /usr/bin/mysql_config, version 5.0.77
configure: error: MySQL source version does not match MySQL binary version
是默认的/usr/bin/mysql_config与mysql-5.1.47源码版本不一样,所以做一下补充:
cp /usr/local/app/mysql/bin/mysql_config /usr/bin/mysql_config
************************************************************)
编译安装:
makemake install
添加配置
vi /etc/my.cnf
增加如下选项:
[mysqld]
plugin-load=handlersocket.so
loose_handlersocket_port = 9998
# the port number to bind to (forread requests)
loose_handlersocket_port_wr = 9999
# the port number to bind to (for write requests)
loose_handlersocket_threads = 16
# the number of worker threads (for read requests)
loose_handlersocket_threads_wr = 1
# the number of worker threads (for write requests)
open_files_limit = 65535
# to allow handlersocket accept many concurrent
# connections, make open_files_limit as large as
# possible.
然后使用root登录MYSQL
mysql -u root -h localhost -p
在MYSQL控制台中执行命令
mysql> install plugin handlersocket soname 'handlersocket.so';
如果执行成功,可以看到9998 9999 端口已经启动
# netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:997 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9998 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:50187 0.0.0.0:*
udp 0 0 0.0.0.0:991 0.0.0.0:*
udp 0 0 0.0.0.0:994 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 :::43696 :::*
udp 0 0 :::5353 :::*
安装完毕。不需要修改mysql的源代码。
除了在mysql端安装handlersocket插件之外 还要在执行端安装模块
其中Net::HandlerSocket模块存放于HandlerSocket的分发tar包的perl-Net-HandlerSocket目录中,编译安装方式如下:
- cd perl-Net-HandlerSocket/
- perl Makefile.PL
- make
- make install
卸载
UNINSTALL PLUGIN
在mysql界面
mysql> uninstall plugin handlersocket
即可
常见错误:
libtool: link: only absolute run-paths are allowed
1.1.1之前的版本跟mysql5.15.1以后的mysql版本make时 路径是不对应的 这里首先要保证使用的是1.1.1版本的handlersocket
1.1.1 下载地址:https://github.com/DeNA/HandlerSocket-Plugin-for-MySQL/releases
如果已经用的1.1.1还是报这个错误 那么要检查配置./configure 时的pulgin路径–with-mysql-plugindir=/usr/local/mysql/lib/plugin/ 看看该目录下是否真的有plugin目录 没有的话要创建一个 或者找到对应的自带的plugin目录
今天的文章苹果手机如何卸载已安装软件_电脑某个软件无法卸载分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59065.html