Abbiamo riscontrato un problema in cui l'esecuzione di query su una tabella con circa 50 milioni di righe e una dimensione dell'indice di 4 GB (dimensioni della tabella di circa 6 GB) provoca lo scambio di memoria del server di database e il rallentamento drammatico. Sono abbastanza sicuro che questo abbia a che fare con il superamento delle dimensioni della tabella temporanea e lo scambio su disco.
Se ho aggiornato il mio server di database da 32 GB di RAM a 64 GB di RAM, mi chiedo se il database MySQL sarà in grado di sfruttare appieno questa memoria aggiuntiva e non lo scambio. Ho esaminato alcune delle variabili (ad es. KEY_BUFFER_SIZE, ecc ...) e sembrano supportare valori di impostazione superiori a 64 GB. Tuttavia, la documentazione di MySQL afferma che tmp_table_size raggiunge il massimo a 4 GB.
Quindi varrebbe la pena l'aggiornamento della memoria? Il problema "query-large-table" trarrebbe vantaggio da questo o non aiuterebbe a causa del limite di 4 GB? So che ci sono potenzialmente altre soluzioni come ristrutturare la tabella per essere partizionata in diversi modi, ecc ... ma senza cambiare nulla sulla tabella, sarebbe utile ulteriore memoria?
Inoltre, in generale, ci sono altre variabili relative alla memoria che MySQL non sarebbe in grado di sfruttare quando si passa da 32 a 64 GB di RAM?
Stiamo usando Linux a 64 bit (Ubuntu) come nostro server di database.
Grazie Galeno