sql >> Databasteknik >  >> RDS >> Mysql

Ska jag använda förberedda satser för MySQL i PHP PRESTANDA-WISE?

Historien

Detta var mitt första Stackoverflow-svar. Mycket har förändrats sedan dess, speciellt utfasningen och borttagningen av mysql API. Även om du fortfarande använder php 5.6, bör mysql_* api inte användas. Nu är PDO eller mysqli de enda alternativen att välja. PDO är bättre av många skäl.

Är förberedda uttalanden cachelagrade över sidhämtning?

Samma förberedda uttalande kommer inte att användas mellan sidladdningar. Det måste förberedas varje gång. Om det är viktigt att klämma in varje stor millisekund, kan en lagrad procedur vara en bra idé (förutsatt att du har en komplicerad fråga).

För stora insättningar (tusentals rader) En större ökning kan förmodligen fås genom att dumpa din data i en textfil och ladda den med LOAD DATA IN FILE . Det är mycket snabbare än en serie skär.

Det ursprungliga svaret

Sanningen är att ibland är mysqli snabbare och ibland är mysql api snabbare. Men skillnaden är verkligen väldigt liten. Om du tittar på något av prestandatesterna på webben är skillnaden egentligen bara 10 - 20 millisekunder. Det bästa sättet att öka prestandan är att optimera tabelldesignen.

Många av testerna som "bevisar" att det äldre api:et är snabbare glömmer bekvämt bort att för maximal säkerhet bör mysql_real_escape_string() anropas för varje variabel som används i frågan.

Frågor cachelagras av servern, om och endast om data i alla tabeller som används i frågan har förblivit oförändrade.

Väntar på ytterligare en uppdatering med faktiska siffror



  1. Hur tar man bort en fil i PL/SQL?

  2. Dåliga vanor :Räkna rader den hårda vägen

  3. Introduktion till spärrar

  4. MySQL Kan inte släppa index som behövs i en främmande nyckel-begränsning