之前一段时间的工作是测试HandlerSocket的性能,测试结果比较奇怪,qps最高只有三四千,不管用C++或者是java或者perl客户端,性能都上不去,与号称的75万qps差距很大,当时困扰了好久,资料太少。
最后发现原因:建表时使用了分区,分区 partition by HASH(ID)影响了查询性能。
partition的主要目的是将数据库表的数据分布到不同的分区,提高数据的并发处理能力,也就是吞吐率。
MySQL中partition主要在三个层次实现:parser, generic handler, query optimizer;parser是指SQL语句这一层的优化,generic handler主要负责查找分区数据,query optimizer中进行分区剪枝来优化查询。
但是对于handlerSocket来说,它本身不提供分区功能,是基于generic handler实现分区数据的操作,并且无法使用query optimizer进行优化,所以在分区表中操作时,性能受限(分区数越多,handlerSocket性能越差)。
更详细解释见 http://stackoverflow.com/questions/8477515/mysql-handlersocket-and-partitioning
鉴于之前找不到原因伤神费力,为防其他it苦逼遇到相同问题,发一篇供苦逼们参考
分享到:
相关推荐
HandlerSocket 是MySQL的一个插件,用于跳过MySQL的SQL层面,直接访问内部的InnoDB存储引擎。
MySQL通过HandlerSocket插件提供了API访问接口,在我们的基准测试中,普通的R510服务器单实例Percona/XtraDB达到了72W+QPS(纯读),如果采用更强劲的CPU增加更多的网卡,理论上可以获得更高的性能。而同等条件下Mem
HandlerSocket会覆盖与SQL解析相关的所有CPU使用率。 相反,它直接向InnoDB使用文本协议来创建/读取/更新/删除(CRUD)数据。 它可以在服务器端结合多种操作。 支持SQL命令: SELECT, UPDATE, INSERT, DELETE 支持...
HandlerSocket插件1
HandlerSocket详细介绍 mysql和memcached的集合
Mongodb的php驱动为:mongodb-mongo-php-driver-1.1.1-19-gc584231.tar.gzHandlerSocket的php驱动为:php-handlersocket-0.0.7.tar.gz通过Php程序来调用Mongodb和HandlerSocket。MongoDB版本:1.6.5MySQL版本:...
一、HandlerSocket是什么?HandlerSocket是akira higuchi写的一个MySQL的插件。以MySQL Daemon Plugin的形式提供类似NoSQL的网络服务,通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了...
HandlerSocket是日本人akirahiguchi写的一个MySql的插件。通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释、打开关闭表、创建查询计划等CPU开销。按照作者给出的数据...
PHP调用MySQL插件HandlerSocket,基于kjdev/php-ext-handlersocketi
Redis、Hash算法数据库、LSM算法数据库、HandlerSocket、分布式数据库
mysql-handlersocket-1.0.6-1.DC.1.x86_64
掌握:适用于PHP的HandlerSocker库该库提供了一个用于与HandlerSocket插件进行通信的API,用于与MySQL兼容的数据库(MySQL,MariaDB,Percona)。 有关HandlerSocket的更多信息,请查看HandlerSocket上的。安装,请...
handlersocket-go 转到用于连接到HandlerSocket Mysql插件的库。 参见github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/ 安装 $ go get github.com/bketelsen/handlersocket-go 阅读示例-最佳示例在TEST文件中。...
Memcache数据一致性的问题:当MySQL数据变化后,如果不能及时有效的清理掉过期的数据,就会造成...面对这些问题,HandlerSocket项目是个不错的解决方案,它通过插件的方式赋予MySQL完整的NoSQL功能,从原理上讲,它跳
用于 MySQL 改进扩展的 HandlerSocket 插件 handlersocketi 扩展允许您访问 HandlerSocket 插件为 MySQL 提供的功能。 有关 MySQL 的 HandlerSocket 插件的更多信息,请访问
TDH_Socket 是一个MySQL daemon 插件, 类似于HandlerSocket。现在TDH_Socket能接受客户端的TCP请求,并且直接通过MySQL的Handler层访问数据,绕开了SQL解析等一系列逻辑。TDH_Socket的Java客户端可以通过在客户端...