sql >> Databáze >  >> RDS >> Mysql

Mám používat připravené příkazy pro MySQL v PHP PERFORMANCE-WISE?

Historie

Toto byla moje první odpověď Stackoverflow. Od té doby se hodně změnilo, zejména ukončení podpory a odstranění mysql API. I když stále používáte php 5.6, mysql_* api by se nemělo používat. Nyní jsou PDO nebo mysqli jedinou možností, kterou si můžete vybrat. PDO je lepší z mnoha důvodů.

Jsou připravené příkazy ukládány do mezipaměti během načítání stránky?

Mezi načtením stránky nebude použit stejný připravený příkaz. Musí být připraven pokaždé. Pokud záleží na zmáčknutí každé velké milisekundy, může být dobrým nápadem uložená procedura (za předpokladu, že máte složitý dotaz).

Pro velké vklady (tisíce řádků) Větší podporu lze pravděpodobně získat uložením dat do textového souboru a načtením pomocí LOAD DATA IN FILE . Je to mnohem rychlejší než řada vložek.

Původní odpověď

Pravdou je, že někdy je rychlejší mysqli a jindy je rychlejší mysql api. Ale rozdíl je opravdu malý. Pokud se podíváte na kterýkoli z testů výkonu na webu, rozdíl je skutečně jen 10 - 20 milisekund. Nejlepší způsob, jak zvýšit výkon, je optimalizovat návrh tabulky.

Mnoho testů, které 'prokazují', že starší API je rychlejší, pohodlně zapomíná, že pro maximální bezpečnost by se pro každou proměnnou použitou v dotazu měla volat mysql_real_escape_string().

Dotazy jsou serverem ukládány do mezipaměti tehdy a pouze tehdy, pokud data ve všech tabulkách použitých v dotazu zůstala nezměněna.

Počkejte na další aktualizaci se skutečnými čísly



  1. Parametrizovaný dotaz pro MySQL s C#

  2. Objednat podle data (varchar)?

  3. stránkování v zobrazení seznamu

  4. zobrazení všech záznamů z jedné tabulky a odpovídajících záznamů z jiné