sql >> Database >  >> RDS >> Mysql

Prestaties van mysql verbeteren LOAD DATA / mysqlimport?

MySQL/MariaDB-engine hebben weinig parallellisatie bij het maken van bulk-inserts. Het kan slechts één CPU-kern gebruiken per LOAD DATA uitspraak. U kunt tijdens het laden waarschijnlijk het CPU-gebruik in de gaten houden om te zien dat één kern volledig wordt gebruikt en dat deze slechts een beperkt aantal uitvoergegevens kan leveren, waardoor de schijfdoorvoer onderbenut blijft.

De meest recente versie van MySQL heeft een nieuwe functie voor parallel laden:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Het ziet er veelbelovend uit, maar heeft waarschijnlijk nog niet veel feedback gekregen. Ik weet niet zeker of het in jouw geval zou helpen.

Ik zag verschillende checklists op internet die aanraadden om hogere waarden te gebruiken in de volgende configuratieparameters:log_buffer_size , log_file_size , write_io_threads , bulk_insert_buffer_size . Maar de voordelen waren niet erg uitgesproken toen ik vergelijkingstests uitvoerde (misschien 10-20% sneller dan alleen innodb_buffer_pool_size groot genoeg zijn).



  1. Selecteer alles voor of na een bepaald personage in MariaDB

  2. Django:wat zijn de beste werkwijzen om een ​​project van sqlite naar PostgreSQL te migreren?

  3. Behoefte om records uit de MySQL-database op datum alleen uit een datetime-veld te halen

  4. Gevonden 'OF 1=1/* sql-injectie in mijn nieuwsbriefdatabase