$ memusg -t ./generate_data.py
elapsed time: 4m:22s
peak rss: 333.0 MB
$ head -n 3 query.txt
6p3orr
hfoc14r
paq_dm
$ head -n 3 subject.txt
yd0msg; wfcou55rt; rp70424ik; ovuts5; 6p3orr
1202t; f5v9343bc4; op7xyup_4; oap222d; eta1d
9u4quwr; f4brcrkby; 53wmkvny4; aoaod5qi6u; 2k962
$ memusg -t ./query.py
reading query list...
700000 items loaded
start querying...
hit 702298 from 3000000
elapsed time: 6.772s
peak rss: 84.36 MB
// delete space after ";"
$ sed 's/; /;/g' subject.txt > subject2.txt
$ memusg -t csvtk -d ';' grep -F -f "*" -P query.txt subject2.txt > result2.txt
elapsed time: 7.990s
peak rss: 90.36 MB
csvtk uses regular expression to check all columns, so it was slower ~