Domanda

Ho un certo numero di domande complesse, i cui risultati venivano archiviati nelle viste MySQL. Il problema è che le viste MySQL soffrono in termini di prestazione.

Ho impostato un lavoro cron per popolare una tabella standard con gli stessi dati con cui sono state popolate le viste:

DROP TABLE user_reports;
CREATE TABLE user_reports
  SELECT col1, col2, col3 FROM 
  /** COMPLEX QUERY **/
;

Ora, quando fai domande sul cron-popolation user_reports tavolo, Le domande impiegano quasi un decimo del tempo per richiedere rispetto alla visione equivalente.

È un approccio comune? Ovviamente c'è un po 'di onere sul server ogni volta che il lavoro Cron viene eseguito e significa che i dati non sono disponibili abitare.

Tempo impiegato per richiedere user_reports = 0,002 secondi
Tempo impiegato per richiedere view_user_reports = 0,018 secondi

Detto questo, forse una query che richiede 0,018 secondi dovrebbe essere eseguita dal codice dell'applicazione, piuttosto che archiviata nelle viste? Anche se non penso che si ridimensionerebbe e il metodo guidato da Cron.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top