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

Langsomme MySQL-indsættelser

Det kunne være tid til vandret opdeling og flytning af klatfelt til en separat tabel. I denne artikel i 'A Quick Side Note on Vertical Partitioning' fjerner forfatteren et større varchar-felt fra en tabel, og det øger hastigheden af ​​en forespørgsel om størrelsesorden.

Årsagen er, at fysisk gennemgang af data på en disk bliver betydeligt hurtigere, hvis der er mindre plads at dække, så flytning af større felter andre steder øger ydeevnen.

Også (og du gør det sikkert allerede) er det en fordel at reducere størrelsen af ​​din indekskolonne til dets absolutte minimum (char(32) i ascii-kodning for md5), fordi størrelsen på nøglen er direkte proportional med hastigheden af ​​dens brug .

Hvis du laver flere indsættelser ad gangen med InnoDB-tabeller, kan du øge indsætningshastigheden betydeligt ved at pakke dem ind i transaktioner og lave flere indsættelser i én forespørgsel:

START TRANSACTION
INSERT INTO x (id, md5, field1, field2) values (1, '123dab...', 'data1','data2'),(2,'ab2...','data3','data4'),.....;
COMMIT


  1. Hvordan henter jeg mit MySQL-brugernavn og -adgangskode?

  2. Hvordan kan jeg kontrollere, om MySQL og Tomcat kører?

  3. Hvad er den bedste måde at gemme afkrydsningsfeltværdier i MySQL-databasen?

  4. Opsætning af en ekstern MySQL-databaseforbindelse