normalizeRow vs ATTR_EMULATE_PREPARES
- unabombe
- Člen | 1
Zdravím,
píšu appku v nette 3.0, používám nette database – mysql, z databáze
tahám spoustu řádků se spoustou sloupců.
Vzhledem k tomu, že celková doba zpracování byla výrazně vyšší než
čas běhu sql, zapnul jsem debugger a zjistil, že většinu času si bere
normalizeRow z třídy ResultSet. Ze zdrojáku je jasné, že to je právě
kvůli množství dat získávaných z databáze.
Trochu jsem laboroval okolo a skončil ve stavu, kdy se na databázi připojuji
s PDO::ATTR_EMULATE_PREPARES = false a PDO::ATTR_STRINGIFY_FETCHES = false a
zároveň v normalizeRow zavolám rovnou return $data, tím jsem snížil dobu
běhu skriptu o 50% a vše funguje na první pohled dobře – samozřejmě
kromě sloupců s datem a časem.
Nicméně něco mi říká, že to asi není úplně ok, můžu čekat nějaké
problémy/rozdíly?
Díky