Hirdetés

Keresé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.

  • inf3rno

    nagyúr

    válasz dabadab #20901 üzenetére

    Hát benchmarknál arra gondoltam, hogy beviszek 10 millió rekordot, aztán beküldök újabb 10 milliót úgy, hogy abból 50k ami tényleges változtatás. Nagyjából valami ilyesmire lehet készülni, max 25 millióra. Igazából a 100 az ilyen hasraütésre született vagy nem tudom mi volt a megfontolás mögötte, simán lehet, hogy 1000 vagy 10000 lesz helyette, most tervezzük újra a rendszert.

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