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

Inserimento lento di MySQL

Ogni volta che una pagina B-Tree è piena, deve essere divisa, operazione che richiede del tempo. Anche le prestazioni degli inserti sono più lente quanto più indici hai, poiché ogni inserto aggiorna tutti gli indici. 9000 ha già affermato correttamente che il tuo indice (timestamp,staff) copre l'indice (timestamp) nel 95% dei casi, ci sono casi molto rari in cui sarà necessario un indice a colonna singola (timestamp) per prestazioni migliori.

Ci sono anche alcune attività periodiche in background che occasionalmente possono rallentare un inserto o due nel corso della giornata.

Inoltre, un altro motivo per i ritardi è semplicemente l'attività del database. Se si dispone di transazioni che bloccano pagine che l'inserto deve aggiornare (o dividere la pagina), l'inserto deve attendere fino a quando i blocchi di scrittura non vengono accettati. Queste altre attività non hanno nemmeno bisogno di avviare effettivamente una transazione e non devono nemmeno essere contese di lettura-lettura; puoi anche avere contese di scrittura e scrittura o una coda creata da un'attività pesante.

E l'ultimo motivo possibile:il server del database ha esaurito le risorse, che si tratti di memoria o CPU o i/o di rete. C'è solo così tanto che un server può fare, quindi dovrà aspettare fino a quando non avrà abbastanza risorse.