Mysql
 sql >> Database >  >> RDS >> Mysql

Ottimizzazione delle query per l'elemento successivo e precedente

Ecco un'idea. È possibile scaricare le costose operazioni su un aggiornamento quando il droghiere inserisce/aggiorna nuove offerte anziché quando l'utente finale seleziona i dati da visualizzare. Questo può sembrare un modo non dinamico per gestire i dati di ordinamento, ma può aumentare la velocità. E, come sappiamo, c'è sempre un compromesso tra prestazioni e altri fattori di codifica.

Crea una tabella da tenere successiva e precedente per ogni offerta e ogni opzione di ordinamento. (In alternativa, puoi memorizzarlo nella tabella delle offerte se avrai sempre tre opzioni di ordinamento:la velocità delle query è una buona ragione per denormalizzare il tuo database)

Quindi avresti queste colonne:

  • Tipo di ordinamento (non ordinato, prezzo, classe e descrizione prezzo)
  • ID offerta
  • ID precedente
  • ID successivo

Quando le informazioni dettagliate per la pagina dei dettagli dell'offerta vengono richieste dal database, NextID e PrevID farebbero parte dei risultati. Quindi avresti bisogno solo di una query per ogni pagina dei dettagli.

Ogni volta che un'offerta viene inserita, aggiornata o eliminata, è necessario eseguire un processo che convalidi l'integrità/accuratezza della tabella sorttype.