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

Come ottimizzare gli indici mysql in modo che le operazioni INSERT avvengano rapidamente su una tabella di grandi dimensioni con scritture e letture frequenti?

Le operazioni di scrittura per una singola riga in una tabella di dati non dovrebbero impiega 5 secondi, indipendentemente da quanto diventa grande il tavolo.

Il tuo indice cluster è basato sul campo timestamp? In caso contrario, dovrebbe esserlo, quindi non stai scrivendo al centro del tuo tavolo da qualche parte. Inoltre, assicurati di utilizzare le tabelle InnoDB:MyISAM non è ottimizzato per le scritture.

Proporrei di scrivere in due tabelle:una tabella a lungo termine, una tabella di rapporto a breve termine con poca o nessuna indicizzazione, che viene poi scaricata secondo necessità.

Un'altra soluzione sarebbe utilizzare un database memorizzato nella cache o in memoria per i dati dei rapporti in tempo reale, in modo che non ci siano risultati nel database di produzione.

Un altro pensiero:esattamente come devono essere "live" uno di questi rapporti? Forse recuperando un nuovo elenco a tempo rispetto a una volta per ogni la visualizzazione della pagina sarebbe sufficiente.