Jak uložit stovky mio párů [tag:comment] pro vyhledávání dle tagu?
- neznamy_uzivatel
- Člen | 115
Ahoj,
prosím o radu :) jak správně ukládat cca 1 miliardu záznamů, které mám
aktuálně v txt souborech ve tvaru TAG::COMMENT\n tak, abych mohle dle TAGu
vyhledávat COMMENTy?
Osobně na takové věci často používám sphinx, ale tady si nejsem
jistý.
Potřebuji ty záznamy dostat ze stovek txt souborů do „tabulky“ o dvou
sloupcích TAG a COMMENT. Comment mě zajímá až po vyhledání daného TAGU
(TAG může mít více COMMENTs včetně zcela duplicitních řádků se
stejným COMMENTem)
TAG i COMMENT je string do 128 znaků. Obsah dat se nemění, po prvotním
zpracování očekávám 95%+ „SELECTů“ a do 5% občasné inserty nových
párů.
Požadavky jsou:
- Co nejmenší velikost na disku
- Co nejrychlejší vyhledávání dle TAG (sphinx by mi asi zvládl i realtime našeptávat, ale není to podmínka)
- Možnost později snadno odstranit plně duplicitní řádky
Díky za tipy..
Editoval neznamy_uzivatel (1. 12. 2021 10:59)
- Milo
- Nette Core | 1283
První co bych zkusil je klasické SQL. Mám PostgreSQL s tabulkami se 600 miliony záznamů a vyhledávám v ní realtime do několika ms. Chce to ale RAM.
Důležité kritérium je, jak se bude vyhledávat. Na přesnou shodu tagu? Na začátek, nebo konec? Regexpem?
Také jaká má být selektivnost dat na dotaz? 1 %? Klasický index v pohodě. 80 %? Index je zbytečný, stejně se ta data musí sekvenčně projít.