Nette\Database\Structure pro velke databaze
- lukyrys
- Člen | 36
Navazuju na vlakno https://forum.nette.org/…pgradu-nette
ktere by se spise hodilo asi sem.
Narazil jsem na problem v konceptu nette\database\structure kdy databaze ma
mnoho tabulek.
Rapidne narusta doba zpracovani php na unserialize() obriho pole z cache.
V mem pripade jsem nastesti mel stejnou strukturu pro 95% tabulek tak jsem to
castecne vyresil ze jsem rychlost nacitani srazil, nicmene i tak pole struktury
pro jednu tabulku byt manualne naplnene trva dost dlouho na zpracovani. Pro 6tis
tabulek zpracovani trva neco kolem 450ms v puvodnim zpracovani struktury a
unserialize z cache trva az 1s.
Na verzi nette 2.0.7 tato „neduha“ nebyla, objevila se u me az po upgradu
na 2.3.5.
Na hodne zatizene aplikaci pocitate s kazdou ms takze i 450ms je pro me
zasadni problem, nema nekdo tipy na to jak to efektivne vyresit?
Editoval lukyrys (4. 10. 2015 20:12)
- Unlink
- Člen | 298
Ako hovorí @enumag, pokiaľ máš vo svojej databáze
5700 rovnakých tabuliek, tak niečo nebude v poriadku s návrhom
databázy.
Nette 2.0.x bolo už dávno, vtedy Structure
ešte tuším
neexistovalo a načítavalo to len niektoré dáta v porovnaní zo
súčasnosťou (a pokiaľ si používal statickú reflexiu, či ako sa to volalo
tak nenačítavalo nič
.) Možno by stálo za to trochu to zoptimalizovať, pretože pri (reálne)
veľkých databázach to môže byť problém.
K tvojmu problému, možno by si nemusel napĺňať priamo to pole duplicitnými dátami, ale namiesto poľa si tam spraviť nejaký kontajner implementujúcii ArrayAccess…
- lukyrys
- Člen | 36
enumag napsal(a):
Nepoužívat 6 tisíc stejných tabulek? :-)
Nemyslim si ze by to bylo spatne ma to urcite svy duvody. Tabulky maji sice
stejnou strukturu ale ruzna data a tabulky muzou mit ruznou velikost, nektere
dosahuji az 1gb dat coz pri sjednoceni do jedne by byl problem vzhledem
k prohledavani vuci velikosti.. I pres indexy mam problem ve vyhledavani
v 6GB tabulce.
Muzu to prirovnat k diskuznimu foru. Co topic to tabulka, nebo me nekdo
presvedci o tom proc to mit vsechny posty v jedne tabulce?
Nicmene to neni predmetem, i tisicovka tabulek nemusi byt nejaka extremni
vyjimka, i pri tomto cislu je znat casove a pametove navyseni.
CZechBoY napsal(a):
Muzes si podedit statickou reflexi a implementovat dany metody.
Nejaky nakopnuti by bylo prosim? Pouzivam defaultni discovery
Editoval lukyrys (4. 10. 2015 14:42)