`
asyty
  • 浏览: 347844 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HandlerSocket 性能瓶颈与partition(分区)

阅读更多

 

之前一段时间的工作是测试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苦逼遇到相同问题,发一篇供苦逼们参考

0
0
分享到:
评论

相关推荐

    MySQL插件HandlerSocket.zip

    MySQL插件HandlerSocket是一个创新性的开源项目,设计目的是为了提高数据库的读写性能,特别是对于大规模数据处理场景。它允许应用程序直接与InnoDB存储引擎交互,绕过了SQL查询解析、优化和执行等传统步骤,从而...

    HandlerSocket详细介绍

    HandlerSocket是一种开源的高性能数据库缓存系统,它结合了MySQL和memcached的优点,旨在提供一种快速、高效的数据存储和检索方式。HandlerSocket最初由Yoshinori Matsunobu在DeNA公司工作期间开发。DeNA是一家日本...

    HandlerSocket插件1

    HandlerSocket 是一个由日本开发者 akira higuchi 开发的 MySQL 插件,它的核心功能在于提供了一种直接与 MySQL 存储引擎进行键值对交互的方式,绕过了传统的 SQL 解析和执行过程,极大地提高了数据库的查询速度。...

    HandlerSocket

    MySQL通过HandlerSocket插件提供了API访问接口,在我们的基准测试中,普通的R510服务器单实例Percona/XtraDB达到了72W+QPS(纯读),如果采用更强劲的CPU增加更多的网卡,理论上可以获得更高的性能。而同等条件下Mem

    php-handlersocket

    总的来说,`php-handlersocket`提供了PHP与MySQL之间的一种高效通信机制,适用于需要高性能数据库访问的应用场景。开发人员在使用此扩展时,应该首先阅读README.md文件以获取安装和配置指导,然后可以通过测试目录...

    php-handlersocket:一个使用HandlerSocket NoSQL MySQL插件的PECL扩展

    HandlerSocket会覆盖与SQL解析相关的所有CPU使用率。 相反,它直接向InnoDB使用文本协议来创建/读取/更新/删除(CRUD)数据。 它可以在服务器端结合多种操作。 支持SQL命令: SELECT, UPDATE, INSERT, DELETE 支持...

    php HandlerSocket的使用

    【总结】:php HandlerSocket是解决MySQL与Memcache结合使用时面临的数据一致性问题和性能瓶颈的一种有效工具。通过直接访问MySQL的索引,HandlerSocket提高了查询效率,减少了对Memcache的依赖,降低了系统的复杂性...

    MySQL HandlerSocket插件安装配置教程

    一、HandlerSocket是什么?HandlerSocket是akira higuchi写的一个MySQL的插件。以MySQL Daemon Plugin的形式提供类似NoSQL的网络服务,通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了...

    handlersocket介绍及如何做性能测试

    HandlerSocket是日本人akirahiguchi写的一个MySql的插件。通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释、打开关闭表、创建查询计划等CPU开销。按照作者给出的数据...

    常用开源NoSQL原理与应用 Redis、Hash算法、LSM算法、HandlerSocket、分布式数据库 共35页.ppt

    Redis、Hash算法数据库、LSM算法数据库、HandlerSocket、分布式数据库

    mysql-handlersocket-1.0.6-1.DC.1.x86_64

    mysql-handlersocket-1.0.6-1.DC.1.x86_64

    HSPHP:PHP HandlerSocket客户端

    掌握:适用于PHP的HandlerSocker库该库提供了一个用于与HandlerSocket插件进行通信的API,用于与MySQL兼容的数据库(MySQL,MariaDB,Percona)。 有关HandlerSocket的更多信息,请查看HandlerSocket上的。安装,请...

    up_683643_php-handelrsocket_vtmyk.rar

    HandlerSocket是一个特殊的MySQL客户端库,它绕过了MySQL的标准查询解析器,直接通过套接字与MySQL服务器进行交互,从而实现了极高的数据读取性能。这种技术常用于大数据量的实时查询场景,如日志分析或在线分析处理...

    handlersocket-go:一个用于连接HandlerSocket的Go库(github.comahigutiHandlerSocket-Plugin-for-MySQL)

    handlersocket-go 转到用于连接到HandlerSocket Mysql插件的库。 参见github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/ 安装 $ go get github.com/bketelsen/handlersocket-go 阅读示例-最佳示例在TEST文件中。...

    up_632667_php-handelrsocket_q248j.rar

    4. **性能优化**:理解如何利用HandlerSocket进行性能调优,包括连接池管理、错误处理策略、并发控制等。 5. **限制与注意事项**:了解HandlerSocket的局限性,如不支持SQL语法,可能对数据库一致性的影响,以及在...

Global site tag (gtag.js) - Google Analytics