MySQL полнотекстовое решение для производительности - PullRequest
0 голосов
/ 20 августа 2009

Как справляться с такими запросами, как:

select ... from ... where match(field1) against('someA') and match(field2) against('someB') limit 50

Если результаты, возвращаемые условиями совпадения (field1) с ('someA') и match (field2) с ('someB'), огромны, весь запрос будет очень и очень медленным.

Решение для этого?

Ответы [ 2 ]

1 голос
/ 20 августа 2009

Вы можете создать еще один индекс FULLTEXT для двух столбцов field1 и field2. Затем выполните поиск по обоим поисковым запросам одновременно:

MATCH(field1, field2) AGAINST ('+someA +someB') IN BOOLEAN MODE  

Конечно, это может найти строки, где field1 содержит оба условия поиска, а field2 не содержит ни того, ни другого. Я не уверен в точных требованиях вашего приложения.

0 голосов
/ 20 августа 2009

Возможно, Сфинкс решит эту проблему для вас эффективно. Sphinx предоставляет мощные возможности полнотекстового поиска. Я не уверен, что это именно то, что вы пытаетесь сделать, но это звучит близко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...