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

Come creare manualmente la cache di MySQL

La cache MySQL funziona in modo diverso a seconda che utilizzi il motore di archiviazione MyISAM o il motore di archiviazione InnoDB.

MyISAM memorizza nella cache solo gli indici, non i dati. Puoi utilizzare LOAD INDEX INTO CACHE> per precaricare gli indici MyISAM nella cache del buffer delle chiavi. Ma non esiste un'istruzione equivalente se usi InnoDB.

InnoDB memorizza nella cache sia i dati che le pagine di indice. Non esiste un comando specializzato per riscaldare i buffer della cache, ma puoi eseguire alcune istruzioni SQL che eseguono scansioni complete di tabelle e scansioni di indici complete per caricarle nei buffer. Dovresti essere in grado di farlo usando uno script sul server, senza ricorrere a wget !

Sono d'accordo con la risposta di @code_burgar:150.000 righe sono abbastanza piccole da non notare molta riduzione delle prestazioni mentre la cache si sta riscaldando.

Se stai parlando di riscaldare la Query Cache , questo è un altro problema. Dovrai riscaldare la cache delle query utilizzando query SQL specifiche, poiché tale cache mantiene i set di risultati associati a tali query SQL testualmente. Il tuo wget soluzione è inefficiente e probabilmente duplica molto lavoro. Dovresti essere in grado di adescare la cache delle query eseguendo uno script sul server che esegua ogni query che desideri memorizzare nella cache una volta .

Ma potrebbe essere necessario eseguire una revisione del codice per capire quali sono queste query e aggiornare periodicamente lo script di precaricamento della cache se il codice cambia.