Запрос SphinxSE приводит к сбою MySQL

#mysql #sphinx #storage-engines

#mysql #sphinx #механизмы хранения

Вопрос:

Я использовал MySQL 5.5.9 и MySQL 5.5.16 и mysqlse rev 2973

Вот запрос sphinx:

 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:

У меня недостаточно репутации, чтобы комментировать напрямую, я не хочу предоставлять это в качестве ответа, но я думаю, что это может вызвать у вас проблемы или вызвать эту проблему, есть ли особая причина, по которой у вас 1 000 000 максимальных совпадений? смотрите: http://sphinxsearch.com/docs/1.10/conf-max-matches.html

Вы просите sphinx получить что-то для вас, затем отфильтруйте до 1 миллиона из них и оцените / отсортируйте их, а затем обработайте только первые 100 из этих 1 миллиона результатов. миллион результатов…

Комментарии:

1. даже если я изменю максимальное количество совпадений на 100. Я все еще получаю ту же ошибку. Я думаю, что это ошибка, поэтому я зарегистрировал ее как ошибку