Tenho uma tabela relativamente grande onde gravo informações que pego de diversos feeds RSS... atualmente essa tabela possui um pouco mais de 2.000.000 de registros.
Já achei muitos casos de feeds é usam campos diferenciados como registro único (um link, um código, um texto)... então eu tenho 2 campos na tabela para refletir essa realidade(feed_unico_campo e feed_unico_valor)... assim faço a checagem dos feeds novos que chegam para verificar se já existe ocorrência no banco de dados... até aí tranquilo. O problema é que isso gera um certo gargalo nas consultas ao banco de dados fazer consultas do tipo LIKE "String de texto longo%" sacrifica e muito a performance... ainda mais com zilhões de novas ocorrências chegando a toda hora.
Mudei então para indices FULLTEXT adicionando um indice para o campo feed_unico_valor. E parece ser uma boa saída, mas estou com uma dúvida cruel: Melhor seria fazer UMA CONSULTA ÚNICA, passando todos os campos únicos como parâmetro para a pesquisa FULLTEXT; ou percorrer os itens UM A UM e consultando se existem no banco para só então inserir o item que não for encontrado?
Detalhe: Uso PHP/PDO para a manipulação desses feeds.
Pergunta
Spyder.RV
Tenho uma tabela relativamente grande onde gravo informações que pego de diversos feeds RSS... atualmente essa tabela possui um pouco mais de 2.000.000 de registros.
Já achei muitos casos de feeds é usam campos diferenciados como registro único (um link, um código, um texto)... então eu tenho 2 campos na tabela para refletir essa realidade(feed_unico_campo e feed_unico_valor)... assim faço a checagem dos feeds novos que chegam para verificar se já existe ocorrência no banco de dados... até aí tranquilo. O problema é que isso gera um certo gargalo nas consultas ao banco de dados fazer consultas do tipo LIKE "String de texto longo%" sacrifica e muito a performance... ainda mais com zilhões de novas ocorrências chegando a toda hora.
Mudei então para indices FULLTEXT adicionando um indice para o campo feed_unico_valor. E parece ser uma boa saída, mas estou com uma dúvida cruel: Melhor seria fazer UMA CONSULTA ÚNICA, passando todos os campos únicos como parâmetro para a pesquisa FULLTEXT; ou percorrer os itens UM A UM e consultando se existem no banco para só então inserir o item que não for encontrado?
Detalhe: Uso PHP/PDO para a manipulação desses feeds.
Editado por Denis CourcyLink para o comentário
Compartilhar em outros sites
17 respostass a esta questão
Posts Recomendados