Nette Database – fetchParis() generuje 2 dotazy a z toho jeden špatně, Nette 2.2.3
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- cokoliw
- Člen | 4
Snažím se trošku optimalizovat dotazy nad databází a díky Tracy jsem zjistil že tento kód
$this->db->table("page")->fetchPairs("id", "title_cs");
generuje 2× SQL
SELECT `id`, `name_id`, `title_cs` FROM `page`
a
SELECT * FROM `page`
Protože v tabulce page není sloupec name_id, tak volání prvního dotazu vypisuje v Tracy (slouopec Time ms) error (skript běží dál, laděnka se neozve). Zajímalo by mě, proč je ten první dotaz vůbec volán a kde se vzalo to name_id. Dá se tomu nějak zabránit?
- Filip Klimeš
- Nette Blogger | 156
S Nette\DB jsem už déle nepracoval, ale pamatuju si, že nejdřív vybere
všechno a pak si nacachuje metainformace o sloupcích, které má vybírat.
Občas mi to blbnulo, když jsem měl v temp/cache
zastaralá data.
Není možné, že Ti tam taky nějaká zbyla?
Editoval Filip Klimeš (12. 3. 2015 17:37)