sql >> Database >  >> RDS >> Mysql

Trage MySQL-inserts

Het kan een tijd zijn voor horizontale partitionering en het verplaatsen van het blob-veld naar een aparte tabel. In dit artikel in 'A Quick Side Note on Vertical Partitioning' verwijdert auteur een groter varchar-veld uit een tabel en verhoogt het de snelheid van een query over de orde van grootte.

De reden hiervoor is dat de fysieke verplaatsing van de gegevens op een schijf aanzienlijk sneller gaat als er minder ruimte is om te dekken, dus het verplaatsen van grotere velden naar elders verhoogt de prestaties.

Ook (en u doet het waarschijnlijk al) is het gunstig om de grootte van uw indexkolom te verkleinen tot het absolute minimum (char (32) in ascii-codering voor md5), omdat de grootte van de sleutel recht evenredig is met de snelheid van het gebruik .

Als u meerdere invoegingen tegelijk doet met InnoDB-tabellen, kunt u de snelheid van invoegingen aanzienlijk verhogen door ze in een transactie te verpakken en meerdere invoegingen in één query uit te voeren:

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


  1. mysqli_connect met externe server

  2. NameError:naam '_mysql' is niet gedefinieerd na wijziging in mysql

  3. Standaard MySQL-tekenset wijzigen in UTF-8 in my.cnf?

  4. Afbeelding integreren met jQuery AutoComplete