Olá pessoal,
Tenho um site de busca em php pesquisando em uma tabela do mysql com 8 milhões de registros. Está tabela possui o (campo titulo e o campo descrição), ambos campos com 8 milhões de registros e ambos campos com índice FULLTEXT.
A minha busca utiliza as funções (MATCH e AGAINST) IN BOOLEAN MODE e com (LIMIT 10) para retornar sempre os 10 primeiros registros encontrados, porem quando a minha tabela tinha apenas uns 3 milhões de registros a busca era rápida, mas agora com 8 milhões de registros na tabela, tem certas buscas que está muito lenta levando mais de 1 minuto para retornar o que foi pesquisado.
Acredito que utilizar índice invertido (lista invertida) não resolva o meu problema, pois há algum tempo astras em outro projeto eu já tive uma lista invertida no MYSQL para uma tabela com apenas 600 mil registros e a lista invertida ficou com uns 5 milhões de TERMOS e terminou que a busca sequencial na tabela com os 500 mil registros erá mais rápida que percorrer a lista invertida com milhares de termos para encontrar algo. Agora imagina fazer uma lista invertida para uma tabela com 8 milhões de registros, a minha lista invertida teria centenas de milhares de TERMOS o que seria mais lento pesquisar na lista que na própria tabela de forma sequencial com índice fulltext.
Alguém poderia me dizer uma solução para ter performance pesquisando em uma tabela mysql com 8 milhões de registros?
Abraço