Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Otimizando consultas para o elemento seguinte e anterior


Aqui está uma ideia. Você pode descarregar as operações caras para uma atualização quando o merceeiro insere/atualiza novas ofertas, e não quando o usuário final seleciona os dados a serem visualizados. Isso pode parecer uma maneira não dinâmica de lidar com os dados de classificação, mas pode aumentar a velocidade. E, como sabemos, sempre há um equilíbrio entre desempenho e outros fatores de codificação.

Crie uma tabela para armazenar o próximo e o anterior para cada oferta e cada opção de classificação. (Como alternativa, você pode armazenar isso na tabela de ofertas se sempre tiver três opções de classificação - a velocidade da consulta é um bom motivo para desnormalizar seu banco de dados)

Então você teria essas colunas:
  • Tipo de classificação (não classificado, preço, classe e descrição do preço)
  • ID da oferta
  • ID anterior
  • Próxima ID

Quando as informações detalhadas da página de detalhes da oferta são consultadas no banco de dados, o NextID e o PrevID fazem parte dos resultados. Portanto, você só precisaria de uma consulta para cada página de detalhes.

Cada vez que uma oferta é inserida, atualizada ou excluída, você precisa executar um processo que valide a integridade/precisão da tabela de tipo de classificação.