Avatar
jan.vencl
Redaktor
Avatar
jan.vencl:

Ahoj, jedná se o partitioning tabulky, která bude nabývat řádově desítek milionů zaznamů. Uvažuji o něm, protože se chci dotazovat na 1000-5000 záznamů v co nejkratším čase (struktura tabulky viz. obrázek). Primární klíč je timestamp

Partitioning by bylo možné provést přes dědičnost tabulek v postgresu a BEFORE INSERT triggerem. Není ještě nejaká jiná možnost, jak zajistit rychlost dotazování. Jedná se o lehké dotazy, žádná transformace dat, pouze něco ve smyslu:

WHERE timestamp>?

Budu moc rád za jakýkoliv nápad děkuji :)

Editováno 13.6.2015 9:21
 
Odpovědět 13.6.2015 9:20
Avatar
Odpovídá na jan.vencl
Michal Štěpánek:

Podle mě je 5000 záznamů na dotaz celkem málo na to, aby bylo potřeba se tím nějak více zabývat. V jedné aplikaci na telefonní hovory vybírám dotazem přes 200.000 záznamů a trvá to cca 3 vteřiny... Pravda, nemám PostgreSQL, ale MSSQL, nicméně i tak si myslím, že to je v pohodě...

Nahoru Odpovědět 13.6.2015 10:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jan.vencl
Redaktor
Avatar
jan.vencl:

No 3 vteřiny je hrozně moc, tady ani tak nejde o to jaká je to DB, ale spíš ten návrh.

Jak to nejefektivněji rozložit mezi větší počet menších tabulek.

Každopádně děkuji za odpověď :)

Editováno 13.6.2015 10:31
 
Nahoru Odpovědět 13.6.2015 10:31
Avatar
Odpovídá na jan.vencl
Michal Štěpánek:

Ty 3 vteřiny byly na 200.000 záznamů, takže 5.000 záznamů nebude trvat ani vteřinu...

Nahoru Odpovědět 13.6.2015 10:58
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.