sql >> Databasteknik >  >> RDS >> Mysql

InnoDB infogar mycket långsamt och saktar ner

InnoDB ger en mer komplex nycklarstruktur än MyIsam (FOREIGN KEYS ) och regenerering av nycklar går väldigt långsamt i InnoDB. Du bör bifoga alla uppdaterings/infoga uttalanden i en transaktion (de är faktiskt ganska snabba i InnoDB, en gång hade jag cirka 300 000 infogningsfrågor på InnoDb-tabellen med 2 index och det tog cirka 30 minuter, när jag väl lade in var 10 000:e infogning i BEGIN TRANSACTION och COMMIT det tog mindre än 2 minuter).

Jag rekommenderar att du använder:

BEGIN TRANSACTION;
SELECT ... FROM products;
UPDATE ...;
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
COMMIT;

Detta kommer att få InnoDB att uppdatera index bara en gång, inte några hundra gånger.

Meddela mig om det fungerade



  1. MySQL-tabell med fast antal rader?

  2. Skapa en fråga i SQL Server 2017

  3. Sql välj elementen som matchar arrayen och visa dem i en rad

  4. Skapa en anpassad SQL Server Docker-bild ovanpå den officiella bilden