答案 0 :(得分:8)
您指的是HandlerSocket接口,该接口绕过SQL查询层,并允许您通过主键在单个InnoDB表中获取和存储行。这个想法是避免SQL的开销允许应用程序运行更高的QPS速率。
HandlerSocket表现出了希望,但到目前为止我们发现的(我为Percona工作)的瓶颈是匆忙编写的客户端界面。也就是说,PHP,Ruby等客户端API在其当前的实现状态下具有这样的开销,即HandlerSocket并不比为INSERT和SELECT编写简单的SQL语句更快。 InnoDB已经针对主键访问进行了优化,因为表实际上是通过主键存储为聚簇索引。
为HandlerSocket客户端库编写优化代码的未来发展应该随着时间的推移而改进。如果您想帮助这个过程,请参与开源项目以开发这些客户端库。
HandlerSocket的另一个缺点是AFAIK,它不支持值的就地递增,这是一些其他键/值存储提供的优化。使用HandlerSocket,您必须获取值,读取它,递增它,然后将其发回数据库。这会引入竞争条件,因此您必须以某种方式锁定该行。