Ho un'applicazione di e-commerce che usa MySQL e mi piacerebbe che fosse più veloce. Quando si accede a una parte # sul sito Web a cui è stato effettuato l'accesso in precedenza, la parte viene caricata rapidamente poiché tutti i dati necessari sono già nel pool buffer INNODB. Tuttavia, se la parte # non è mai stata caricata prima, quei dati non sono ancora nel pool buffer, quindi devono essere letti dal disco e ciò è lento. Ho impostato il pool buffer INNODB da 2 GB e l'intero database ha una capacità di circa 350 MB, pertanto è disponibile spazio sufficiente per caricare l'intero database nel pool di buffer. Posso vedere dalle statistiche INNODB che solo circa la metà del pool di buffer viene utilizzata al momento.Come precaricare le tabelle nel pool buffer INNODB con MySQL?
Ho trovato riferimenti al precaricamento dei dati, noto anche come "riscaldamento" del pool di buffer, ad esempio Quickly preloading Innodb tables in the buffer pool o mysqldump.azundris.com/archives/70-Innodb-cache-preloading-using-blackhole .html. La strategia consiste essenzialmente nel forzare una scansione della tabella su ogni tabella poiché MySQL non ha un modo nativo per il precaricamento dei dati.
Non voglio creare manualmente uno script che elenchi ogni singola tabella nel mio database e debba farlo. Come posso creare uno script che attraversa e fa una selezione per ogni tabella automaticamente e seleziona automaticamente una colonna non indicizzata in modo che venga eseguita una scansione della tabella?
questo algoritmo è semplicemente conciso e brillante. Questo memorizzerà nella cache i dati innodb. Non sono sicuro se questo memorizzerà nella cache tutte le pagine indice innodb, ma il tuo algoritmo può essere rapidamente applicato per farlo. Credo che MyISAM memorizzi solo le pagine dell'indice MYI. Di nuovo, il tuo algoritmo costituisce la base per passare attraverso tabelle e indici. Bravo (e +1) !!!! – RolandoMySQLDBA
Il mio è solo implementazione per ottenere un elenco di query. L'idea viene dal Mysql Performance Blog collegato nella domanda. – Mchl