Portál AbcLinuxu, 12. května 2025 17:00
Jinak pokud neděláte commit po každém příkazu
Očekával bych, že má zapnutý autocommit.
Netuším jak se to vnitřně optimalizuje.
Prepared zkompiluje dotaz (na straně DB), ověří práva, připraví úložné enginy (u MySQL) apod. (tím s třeba myslí i načtení statistik, pokud jsou pro dotaz potřeba). To je jistá část práce, která je už při mnoha stejných dotazech hodně vidět. Co ovšem nelze připravit dopředu je aktualizace indexů, transakční logy apod. Ty se musejí aktualizovat s každou úpravou dat. Proto by mohlo být rychlejší to insertovat a commitovat po větších dávkách. Jenže i toto má jiné řešení (např vypnout, vložit, zapnout indexy). Proto, jak napsal pan Jirsák, je toto zbytečná optimalizace a měla by se dělat ve chvíli, kdy bude zcela jasně, že toto je úzké výkonnostní hrdlo. Jinak to, jak správně píšeš, pouze zaneřádí kód.
A co se týče sql injections tak prepared statement s otazníky(?) by to snad měl řešit sám respektive php samo ne?
To si řeší ovladač a přímo DB. Takže po této stránce je to bezpečné.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.