2010-04-30 6 views
1

MySQL을 통해 sphinxse를 사용하여 큰 인덱스의 텍스트 데이터 세트에 액세스하고 있습니다. 결과 집합의 크기는 기가 바이트 단위입니다. 그러나, 데이터 세트가 16MB보다 클 때마다 MySQL이 다음 오류로 인해 쿼리를 중지한다는 것을 알고 있습니다.MySQL에서 16 MB보다 큰 스핑크스 결과 문제

1430 (HY000) : 외부 데이터 소스에 대한 쿼리를 처리하는 동안 문제가 발생했습니다. 데이터 소스 오류 : 검색 응답 길이가 좋지 않음 (길이 = 16777523)

길이는 잘못된 MySQL 결과 집합의 길이를 나타냅니다. 스핑크스의 독립 실행 형 검색 프로그램에서 동일한 쿼리를 시도했습니다. 그것은 잘 작동합니다. MySQL과 Sphinx에서 가능한 모든 변수를 시도했지만 도움이되는 것은 없습니다.

저는 Sphinx 0.9.9 rc-2와 MySQL 5.1.46을 사용하고 있습니다.

감사

답변

0
당신은 아마 16M의 기본 값에서의 max_allowed_packet를 늘려야

: 당신이 처리하려는 경우

클라이언트와 서버는 자신의 max_allowed_packet 변수가

mysql's documentation에서, 그래서 큰 패킷의 경우 클라이언트와 서버에서이 변수를 늘려야합니다.

mysql 클라이언트 프로그램을 사용하는 경우 기본 max_allowed_packet 변수는 16MB입니다. 큰 값을 설정하기 위해, 이런 MySQL의 시작 :

쉘> MySQL의 --max_allowed_packet = 32M 32메가바이트로 패킷 크기를 설정

.

+0

답변 해 주셔서 감사합니다. 나는 이미 서버와 클라이언트에서 max_allowed_packet을 시도했다. 그것은 일을 didnt한다 :( – gmemon

1

마침내 문제가 해결되었습니다. mysql (sphinxSE) 용 sphinx 플러그인은 소스 코드의 결과 세트에서 16MB의 응답 제한을 하드 코드 (나쁜 나쁜 소스 코드)로 나타냅니다. 파일 ha_sphinx.cc에서 SPHINXSE_MAX_ALLOC를 1 * 1024 * 1024 * 1024로 변경 했으므로 이제는 문제가 없습니다.