Hirdetés

Új hozzászólás Aktív témák

  • inf3rno

    nagyúr

    válasz dabadab #20901 üzenetére

    Na benchmarkoltam, egyelőre csak annyit, hogy 10.000 rekord van, és másik 10.000-el írjuk felül INSERT ON DUPLICATE KEY UPDATE-el. A sebességek ilyenek voltak:
    - egyesével beküldve: 6.000 record/sec
    - tranzakcióban beküldve 100-as kötegekben: 10.000 record/sec
    - tranzakcióban beküldve 250-es kötegekben: 10.000 record/sec
    - JSON-ban beküldve CTE-vel 100-as kötegekben: 80.000 record/sec
    - JSON-ban beküldve CTE-vel 250-es kötegekben: 95.000 record/sec
    - JSON-ban beküldve CTE-vel 10.000-es kötegekben: 110.000 record/sec

    Nekem ebből az jött le, hogy JSON-ban fogom beküldeni CTE-vel ahelyett, hogy tranzakcióval szarakodnék. A 250-es köteg tűnik optimálisnak. Annyi talán még elveszhet, ha valami nagyon félrecsúszik, nem zabál annyi memóriát és sebességben elég közel van a 10.000-es köteghez.

    Még csinálok majd egy 4. változatot, aminél először SELECT FOR UPDATE-el lekérem, hogy mi változott, aztán csak utána tolom rá az INSERT ON DUPLICATE KEY UPDATE-et. Így le tudom naplózni a tényleges változásokat is. De ezt csak akkor lépem meg, ha nem annyira lassú, mondjuk hozza legalább az egyszerűbb JSON-os változat 80%-át sebességben.

Új hozzászólás Aktív témák