/ / Alternatívy k sledovaniu dotazov na riadky tabuľky ako na riadok „počet“ - mysql, sql, database, design databázy

Alternatívy sledovania dopytov riadkov tabuľky ako riadok "count" - mysql, sql, databáza, návrh databázy

Musím sledovať počet dopytov na každý riadok v tabuľke. Musím to urobiť na mnohých tabuľkách.

Jedným z nápadov je stĺpec „search_count“

id  | other data ...  | search_count
1  |      ...        |       12
2  |      ...        |       90

Existuje efektívnejší spôsob, ako to urobiťMáte stĺpec „počet vyhľadávaní“? Viem, že by to fungovalo, ale bolo by to pre mňa nepríjemné „zápachu kódu“, pretože by som musel vykonať aktualizáciu po každom dotaze (Alebo spúšťač?). Používame Piwik alebo Google Analytics v maximálnej možnej miere, ale neboli by úplne presné, pretože k databáze pristupuje viac ako len webový server.

Táto databáza je MySQL 5.x

Vďaka

odpovede:

1 pre odpoveď č. 1

Ak to urobíte v DB za behu, vygeneruje sa príliš veľa mŕtvych riadkov ...

Sledovať pomocou memcache->increment vo vašom obľúbenom jazyku. Je atómová. A pomocou cronu môžete ukladať výsledky každý deň alebo každú hodinu.

Pseudokód, ktorý sa má počítať:

$ns = $memcache->get("count_ns");
$memcache->increment("count-$ns-$table-$id");

Na cron:

$ns = $memcache->get("count_ns");
sleep(1); // allow processes to finish
$memcache->increment("count_ns");
while ($row = $rows->next()) {
if ($count = $memcache->get("count-$ns-$table-$id") {
// increment count
}
}