Mysql crea tabelle utilizzando un lavoro cron o usa visualizzazioni
-
29-10-2019 - |
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 richiedereview_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