首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中Sphinx结果集大于16MB的问题

MySQL中Sphinx结果集大于16MB的问题
EN

Stack Overflow用户
提问于 2010-05-01 05:49:38
回答 2查看 1.2K关注 0票数 2

我正在通过MySQL使用sphinxse访问一个大型的索引文本数据集。结果集的大小约为千兆字节。但是,我注意到每当dataset大于16MB时,MySQL就会停止查询,并显示以下错误:

1430 (HY000):处理外部数据源上的查询时出现问题。数据源错误:错误的搜索响应长度(length=16777523)

length显示违反MySQL的结果集的长度。我已经用Sphinx的独立搜索程序尝试了相同的查询。它工作得很好。我已经在MySQL和Sphinx中尝试了所有可能的变量,但都没有用。

我使用的是Sphinx0.9.9RC-2和MySQL 5.1.46。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2010-05-02 09:57:07

我终于解决了这个问题。事实证明,sphinx plugin for mysql (SphinxSE)在源代码(错误的源代码)中硬编码结果集上的16MB响应限制。我在文件ha_sphinx.cc中将SPHINXSE_MAX_ALLOC更改为1*1024*1024*1024,现在一切正常。

票数 2
EN

Stack Overflow用户

发布于 2010-05-01 11:31:06

您可能需要将max_allowed_packet从默认值16M增加:

来自mysql's documentation

客户端和服务器都有自己的max_allowed_packet变量,因此如果您想要处理大型数据包,则必须在客户端和服务器中都增加此变量。

如果您使用的是mysql客户端程序,那么它的默认max_allowed_packet变量是16MB。要设置更大的值,请按如下方式启动mysql:

shell> mysql --max_allowed_packet=32M

这会将数据包大小设置为32MB。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2747905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档