Autor Zpráva
MaK
Profil
Mám jednoduchý dotaz

INSERT INTO tab
SET id=...
ON DUPLICATE KEY UPDATE
time=NOW(), c=c+1;

Dotaz je prováděn i 10x za sekundu (pochopitelně pokaždé s jiným id). Tabulka je InnoDB.
Ač mám nad sloupcem id index (BTREE), pravidelně se mi tyto dotazy v čase nejvyššího zatížení objevují ve Slow-Queries.

Napadlo mě, a u jiného případu jsem už realizoval, zapisovat do tabulky typu MEMORY a na konci každé hodiny to přesypat do cílové tabulky na disku. Nejsem si však jist jestli je ten postup spravný - šťastný.

Děláte to někdo takhle?
ninja
Profil
Pokud to nejsou kritická data, tak to je dobrý nápad. A ještě bych vyřadil kontrolu duplicity. Ponechat jen jednoduché inserty, s možností duplicitních id. na konci hodiny se to posčítá a přičtě do finální tabulky k případně již existujícím datům.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0