Cache SQL dotazu – indexy

magixx
Člen | 6
+
0
-

Ahoj,

prosím o radu. Pokud napíšu jakýkoliv sql dotaz s použitím ->select(…) tak se dotaz nenakešuje (tmp/cache/_Nette.Database).

Předpokládám tedy, že se díky tomu Nette snaží pořád najít jednotlivé indexy, je to tak?

Díky

Felix
Nette Core | 1189
+
0
-

Nette Database si uklada informace o strukture tabulek v databazi a o sloupeckach, ktere realne pouzivas.

Posilam primo odkazy do kodu na Githubu. Muzes prozkoumat.

https://github.com/…election.php#L621
https://github.com/…election.php#L156
https://github.com/…tructure.php#L163
https://github.com/…tructure.php#L179

magixx
Člen | 6
+
0
-

Ahoj, díky. Každopádně pokud mám např. sloupec n_parent v jiné tabulce přes join tak už ji nevytáhne, proto musím použít ->select(…,n_parent) :(

Zkusím na tebe položit ještě jeden dotaz. Mám sql

$this->database->table("tbl_Articles")
->select($this->translationFields)
->alias(':tbl_Articles_Translations', 'at')
->joinWhere("at","at.fk_tbl_lang = ?",LANG_ID)

pokud nad ním neudělám fetchAll() tak se mi nepromítne do Tracy, takže mi to navozuje pocit, že se toto query ani nespustí. Je to tak? nebo to nějak ovlivní výkon?

Díky moc

Kamil Valenta
Člen | 762
+
0
-

magixx napsal(a):

Ahoj, díky. Každopádně pokud mám např. sloupec n_parent v jiné tabulce přes join tak už ji nevytáhne, proto musím použít ->select(…,n_parent) :(

https://doc.nette.org/…ase/explorer#…
Lépe pojmenuj, dej FK a bude to šlapat.

pokud nad ním neudělám fetchAll() tak se mi nepromítne do Tracy, takže mi to navozuje pocit, že se toto query ani nespustí. Je to tak?

Je to tak, dotazy jsou vyhodnocovány líně, tedy až ve chvíli, kdy a pokud vůbec jsou skutečně potřeba.