Ahoj Filipe, chtěl jsem se zeptat, zda je něco nové co se týče rychlosti dotrine. Já si myslím, že dělám něco špatně. Jako dotrine mě velmi oslovila s polu s konsolí je to super nástroj, ale trochu mě zaráží ty dotazy do DB. Nevadí když se mi vždy tahají všechny sloupce z databáze? (Vím, že jsi říkal že na to mám hledět jako na objekt a né jako na databázi) Byl jsem na poslední sobotě, ale nemohli jsme tam být až do konce, velká dálka do Prahy. Tam se něco říkalo, že se dá dotrina zrychlit dvěmi způsoby, ale jak už jsme se nezjistili. Můžeš mi to prosím trochu ujasnit?? Děkuji

Jo a co říkaš na nástroj http://nextras.org/orm/docs/1.1/ nebo http://www.leanmapper.com/ . Velmi by mě zajímal tvůj názor. Hledám už dlouho nějakou databasovou vrstvu, která se bude dobře používat, a kterou každý nebude hanit. Já si myslím, že i nástroje NDB i NDBT, DIBI jsou velmi povedené , ale tvůrce NEXTRAS to docela hanil, hanil i dibi. O dibi si myslím, že je to geniální knihovna. Na dotrine jsem zatím slyšel jen chválu. Díky

Ahoj Petře, mrkni na https://github.com/…ome-doctrine a hledej “performance”. Najdeš tam top performance pasti v Doctrine.

Pokud ti něco nesedí, profiluj na tvé konkrétní aplikaci. Pokud má dotaz < 5 ms, nemá obvykle smysl ho řešit. Pokud takových dotazů je 100, je to velký prostor pro zlepšení.

Oproti zmiňovaným je Doctrine daleko napřed co se týče stability a vývoje. Vyvíjí ji ~10 lidí a je používána mnoha firmami v zahrničí. Na microsites je to overkill, při práci v týmu je k nezaplacení.

Ahoj Tomáši, děkuji za tip, jsem to prostudoval, ale moc tomu nerozumím. Filip říkal, že se na dotrinu mám dívat jako na objekty. že nemám řešit, že to tahá všechny sloupce z databáze. Ale v tom článku psal, že se ty sloupce mají omezovat, pak tam psal že je potřeba cachovat , já myslel, že je to spuštěné tímto příkazem
metadata:
App: %appDir% Proč tedy dotazy trvají více jak 10ms a to jsou základní, nespojují se ani tabulky. Když to napíši v NDBT tak to trvá asi jednu ms

pr: 71.405

SELECT t0.nazev AS nazev1, t0.ulice AS ulice2, t0.mesto AS mesto3, t0.psc AS psc4, t0.ic AS ic5, t0.dic AS dic6, t0.zapsana AS zapsana7, t0.logo AS logo8, t0.email AS email9, t0.telefon AS telefon10, t0.informace AS informace11, t0.reference AS reference12, t0.obchodni AS obchodni13, t0.podekovani AS podekovani14, t0.domena AS domena15, t0.mer_kod AS mer_kod16, t0.id AS id17 FROM firma t0 WHERE t0.id = 1

Děkuji

Toto nastavení jen určuje, kde Doctrine může najít třídy entit:

metadata:
    App: %appDir%

Ve článcích obvykle najdeš obecné tipy. Ty už máš konkrétní, neobvyklý use case – 71 ms je podezřele hodně.

Problémů pomalosti tvého dotazu může být spusta, takhle na dálku ti nejsem schopen efektivně poradit. Když ho zkusíš spustit v Admineru, jak dlouho tam trvá?

Ahoj Tomáši normálně to trvá 3.2ms. Když ten dotaz položím v dibi, tak je to taky velmi rychle. Já myslím že mám špatně nastavené cachovani(defaultni). mám jen základní nastaveni.

doctrine:
    user: %database.user%
    password: %database.password%
    dbname: %database.dbname%
    metadata:
        App: %appDir%/Entity

když jsem zkoušel nastavit nějakou jinou cache podle dokumentace metadataCache: apc tak to píše chybu Call to undefined function Doctrine\Common\Cache\apc_fetch() .

Když, ale vypnu developed mod a mám produkční, tak je aplikace mnohem rychlejší(nebo se mi zdá.)


You must first log in to participate in this discussion