Query performance do índice combinado vs. vários índices únicos vs. índice de texto completo

Fundo Tenho uma tabela com 5 milhões de entradas de endereço que gostaria de procurar por diferentes campos (nome do cliente, nome do contato, CEP, cidade, telefone, ...), com até 8 campos. Os dados são bastante estáveis, no máximo 50 alterações por dia, portanto, quase apenas o acesso de leitur

O usuário não deve me informar com antecedência o que está procurando e também quero suporte para a pesquisa combinada (concatenação AND dos termos de pesquisa). Por exemplo, "lincoln + lond" deve procurar todos os registros que contenham os dois termos de pesquisa em qualquer um dos campos de pesquisa, também aquelas entradas que começam com qualquer um dos termos (como "Londres" neste exemplo).

Problema Agora, preciso escolher uma estratégia de indexação para esta tabela de pesquisa. (Como observação lateral: estou tentando obter um tempo de resposta de menos de um segundo, o pior tempo de resposta deve ser de 2 segundos.) O que há de melhor em termos de desempenho:

Faça um índice combinado de todas as colunas consultáveis (seriam necessárias duas delas, pois o limite de 900 bytes alcançado) Coloque índices únicos em cada uma das colunas consultáveisFaça um índice de texto completo nas colunas consultáveis e use a consulta de texto completo

Estou descartando o ponto 1, pois parece não ter nenhuma vantagem (o uso do índice será limitado e não haverá "busca de índice", porque nem todos os campos se encaixam em um único índice

Questão Agora, devo usar o vários índices únicos variante ou devo ir com ofulltext index? Existequalquer outra maneir para obter a funcionalidade mencionada acima?

questionAnswers(4)

yourAnswerToTheQuestion