Portál AbcLinuxu, 19. dubna 2024 02:15

Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB

26.6.2021 21:54 | programovanie | poslední úprava: 26.6.2021 22:21

Online zde (slovenština).

Inspirovanou diskusním dotazem „3700 tabuliek“.        

Hodnocení: 44 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

27.6.2021 11:50 Matlák
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
Odpovědět | Sbalit | Link | Blokovat | Admin
Pěkné srovnání a odkazované čtení o hash tabulkách v PHP (ačkoliv se domnívám že PHP se na velké projekty nehodí a ani na velká data ne - třiceti terabajty dat zmíněných v dotazu "3700 tabuliek" bych PHP rozhodně nekrmil :-)), jen to LENGHT tam pěkně tahá za oči, to bych být tebou opravil.
27.6.2021 11:51 Matlák
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
s/zmíněných/zmíněnými/
27.6.2021 15:38 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
Ahoj.

Ono treba poznat limity nastrojov, a bud volit iny alebo zmenit architektiru. Je rozdiel robit softver pre delenie cisiel v textovej forme s dlzkou do 10B na cislo a druhe, ze cislo moze byt nekonecne dlhe (iba limit hardveru). Ja som potom indexoval inac (robene pre nekonecno), lebo PHP a kolko mam RAM sa mi nechcelo riesti.

No moje porovnavanie dava, co ponuk one box riesenie PHP bez optimalizacii (zo uz zrejme by muselo byt prepisany kod do C, C++ alebo Rust).

K jeho diskusii. Nepise kolko ma dotazov. Co mne vyslo, tak 11GB databaza pri jeho jednej popisanej struktury ma tabulka 22M zaznamov. Nevyhnutny cas pre import je nacitanie zo suboru a zapisat DB interne. Cize zapisat 2x11GB=2x3,6s (disk 50MB/s). K tomu ak easy riesenie este zotriedenie dat v poli s pametanim kluca, tak nam vychadza pri 22M polozkach zabere 2 229 MB a 36.506s. Ak ma DB velku 11 GB, tak pri 32 GB RAM sa mu to v pohode zmesti do RAM. Takze na nevytazenom systeme to trva aktualizacia dajme 1 minutu. 3600 tabuliek = 2.29 dna v najhorsom pripade. Takze zalezi kolko tabuliek sa akt. Ak je potrebne aktualizovat vela, tak zotriedit v BTree strome a podobne.
debian.plus@protonmail.com
27.6.2021 16:21 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
Ach moje pocitanie, oprava:

zapis (50 MB/s)zotredeniaexport/import (1 DB)export (3300 DB, najhorsi scenar)
2 x 220 s36,506 s476,5 s18,19 dni
2 x 220 s0 s440 s16,80 dni

zapis (200 MB/s)zotredeniaexport/import (1 DB)export (3300 DB, najhorsi scenar)
2 x 55 s36,506 s38,326 s5,59 dni
2 x 55 s0 s440 s4,20 dni

DB ma 11 GB.

To moze byt rad, ze mu to trva 1 den ked porovna najhorsie scenare. :)
debian.plus@protonmail.com
28.6.2021 03:08 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
Správne: Ach moje počítanie, oprava:
zapis (50 MB/s)zotredeniaexport/import (1 DB)export (3300 DB, najhorsi scenar)
2 x 220 s36,506 s476,5 s18,19 dni
2 x 220 s0 s440 s16,80 dni

zapis (200 MB/s)zotredeniaexport/import (1 DB)export (3300 DB, najhorsi scenar)
2 x 55 s36,506 s38,326 s5,59 dni
2 x 55 s0 s110 s4,20 dni

DB ma 11 GB.

Hm, prečo interné neukladá si vo vlastnej implementovanej DB ako CVS, ved aj sqlite je vlastne txt subor, iba inak zabalene dáta. Tuším aj nejaká DB (tuším MariaDB) povoľuje ukladať ako CVS.

Hm, keby sa ešte ukladať dáta zazipované, tak bolo by to menej miesta zaberalo, resp. bolo nutné ukladať.

Pre 22M záznamov:

284M	cvs.txt
111M	cvs.txt.gz

debian.plus@protonmail.com
28.6.2021 09:28 samalama
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
Odpovědět | Sbalit | Link | Blokovat | Admin
prosim vas, ako sa da niekto zakazat na internete...?
28.6.2021 11:17 t@fu
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
No jednoducho - izolaciou. Nech sa realizuje na jednom fore, napr. na abclinuxu a na zbytok internetu nech nelozi :-)
Člověk z Horní Dolní avatar 28.6.2021 13:54 Člověk z Horní Dolní | blog: blbeczhornidolni
Rozbalit Rozbalit vše Re: Benchmark hašovacích tabuliek v PHP cez jednod. key-value DB
Odpovědět | Sbalit | Link | Blokovat | Admin
PHP? LOL

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.