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 |
#2 · Zasláno: 4. 2. 2013, 10:48:46
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.
|
||
Časová prodleva: 11 let
|
0