Jak uložit stovky mio párů [tag:comment] pro vyhledávání dle tagu?

neznamy_uzivatel
Člen | 115
+
0
-

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:

  1. Co nejmenší velikost na disku
  2. Co nejrychlejší vyhledávání dle TAG (sphinx by mi asi zvládl i realtime našeptávat, ale není to podmínka)
  3. 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
+
+2
-

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.