SphinxSE查询导致MySQL崩溃

时间:2011-10-11 06:23:38

标签: mysql sphinx storage-engines

我使用MySQL 5.5.9和MySQL 5.5.16以及mysqlse rev 2973

以下是狮身人面像查询:

SELECT
    id
FROM sphinx_search t
WHERE `query` = 'mode=extended2;
maxmatches=1000000;
query=@site_id,"0acd771ae618e89097564494af8bb838";
filter=search_engine_id,5;
limit=100; offset=0;
index=keywords_idx;
sort=extended:keyword_ord ASC;';

这是MySQL堆栈跟踪:

Thread pointer: 0x7f57600
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x496900b8 thread_stack 0x40000
/usr/libexec/mysqld(my_print_stacktrace+0x33)[0x7aa013]
/usr/libexec/mysqld(handle_segfault+0x381)[0x5002e1]
/lib64/libpthread.so.0[0x3384c0eb10]
/lib64/libc.so.6(strstr+0x1b)[0x338447a32b]
/usr/lib64/mysql/plugin/ha_sphinx.so[0x2aaab2e006cc]
/usr/lib64/mysql/plugin/ha_sphinx.so(_ZN9ha_sphinx4openEPKcij+0x172)[0x2aaab2e00bc2]
/usr/libexec/mysqld(_ZN7handler7ha_openEP5TABLEPKcii+0x3f)[0x678cff]
/usr/libexec/mysqld(_Z21open_table_from_shareP3THDP11TABLE_SHAREPKcjjjP5TABLEb+0x539)[0x5e
8349]
/usr/libexec/mysqld(_Z10open_tableP3THDP10TABLE_LISTP11st_mem_rootP18Open_table_context+0x
802)[0x53ea12]
/usr/libexec/mysqld(_Z11open_tablesP3THDPP10TABLE_LISTPjjP19Prelocking_strategy+0x2d0)[0x5
40060]
/usr/libexec/mysqld(_Z18mysqld_show_createP3THDP10TABLE_LIST+0x146)[0x5bb916]
/usr/libexec/mysqld(_Z21mysql_execute_commandP3THD+0x27a6)[0x573d76]
/usr/libexec/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x10a)[0x5775ba]
/usr/libexec/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x14fc)[0x578b1c]
/usr/libexec/mysqld(_Z10do_commandP3THD+0xc2)[0x578e72]
/usr/libexec/mysqld(_Z24do_handle_one_connectionP3THD+0xf2)[0x60ac82]
/usr/libexec/mysqld(handle_one_connection+0x53)[0x60ad73]
/lib64/libpthread.so.0[0x3384c0673d]
/lib64/libc.so.6(clone+0x6d)[0x33844d44bd]

1 个答案:

答案 0 :(得分:0)

我没有足够的代表直接评论我不想提供这个作为答案,但我认为这可能会导致你的问题或导致这个问题,是否有一个特殊的原因你有1,000,000最大匹配? 见:http://sphinxsearch.com/docs/1.10/conf-max-matches.html

你要求sphinx为你得到一些东西,然后过滤掉它们中的100万个并对它们进行排序/排序然后只处理这100万个结果中的前100个......