sql >> Database >  >> RDS >> Mysql

Mysql langzaam invoegen

Wanneer een B-Tree-pagina vol is, moet deze worden gesplitst, wat enige tijd in beslag neemt. De prestaties van het invoegen zijn ook langzamer naarmate u meer indexen heeft, aangezien elke invoeging alle indexen bijwerkt. 9000 al correct heeft aangegeven dat uw (timestamp,staff) index de (timestamp) index in 95% van de gevallen dekt, zijn er zeer zeldzame gevallen waarin een single-column (timestamp) index vereist is voor betere prestaties.

Er zijn ook enkele periodieke achtergrondtaken die af en toe een of twee invoegingen in de loop van een dag kunnen vertragen.

Bovendien is een andere reden voor vertragingen simpelweg database-activiteit. Als u transacties hebt die pagina's vergrendelen die de invoeging moet bijwerken (of pagina-splitsing), moet de invoeging wachten tot de schrijfvergrendelingen zijn goedgekeurd. Deze andere activiteiten hoeven niet eens daadwerkelijk een transactie te starten, en ze hoeven niet eens een lees-lees-conflict te zijn; je kunt ook schrijf-schrijfconflicten of een wachtrij hebben die is opgebouwd uit zware activiteit.

En de laatste mogelijke reden:uw databaseserver heeft geen bronnen meer, of het nu geheugen, CPU of netwerk-i/o is. Er is maar zoveel dat een server kan doen, dus hij zal moeten wachten tot hij genoeg bronnen heeft.



  1. Leg MySQL uit, leg de wiskunde van het uitvoeringsplan uit, het verschil tussen twee plannen

  2. Schakel het SA-account in SQL Server uit (T-SQL-voorbeeld)

  3. Meerdere rijen met verschillende waarden bijwerken

  4. Verbinding maken met MySQL via SSL met behulp van PHP