sql >> Databáze >  >> RDS >> Mysql

Optimalizace vložek MySQL pro zpracování datového toku

Pokud vaše data nepotřebují okamžitě přejít do databáze, můžete svá vložená data někde uložit do mezipaměti a poté vydat jeden větší příkaz vložení, např.

vložit do názvu_tabulky (x, y, z) hodnoty (x1, y1, z1), (x2, y2, z2), ... (xN, yN, zN) při duplicitní aktualizaci ...;

Aby bylo jasno, vedl bych seznam nevyřízených příloh. V tomto případě seznam (x,z,y) tripletů. Poté, jakmile váš seznam překročí určitou hranici (N), vygenerujete příkaz insert a vydáte jej.

Nemám pro vás žádné přesné údaje o načasování, ale toto zvýšilo výkon zhruba 10krát ve srovnání s vkládáním každého řádku jednotlivě.

Taky jsem si nehrál s hodnotou N, ale zjistil jsem, že 1000 funguje pěkně. Očekávám, že optimální hodnota je ovlivněna nastavením hardwaru a databáze.

Doufám, že to pomůže (také používám MyIsam).



  1. Je použití hlavní tabulky pro sdílené sloupce dobrým postupem pro celou databázi?

  2. Kdy bych měl použít $wpdb->prepare, pokud vůbec?

  3. Jaký je ekvivalent REF CURSOR společnosti Oracle v MySQL?

  4. Ekvivalent varchar(max) v MySQL?