sql >> Databasteknik >  >> RDS >> Mysql

MySQL PHP PDO förberedda uttalanden - prestandaproblem kontra säkerhet

Jag tror att detta faller i kategorin "för tidig optimering".

Hur betydande är omkostnaderna? Har du mätt den? Påverkar det din serverprestanda överhuvudtaget?

Det är troligt att det inte gör det.

På plussidan har du en obestridlig vinst när det gäller säkerhet (vilket borde vara ett stort bekymmer för alla internetbaserade butiker).

På minussidan har du risken att det kan påverka prestandan. I länken du angav visar det att dåligt implementerad PDO-beredning resulterar i något lägre prestanda än icke-förberedda uttalanden under vissa omständigheter. Prestandaskillnaden på 5000 körningar är 0,298 sekunder.

Obetydlig. Ännu mer när du inser att de "icke förberedda" frågorna körs utan de ingående saneringsrutinerna som skulle krävas för att göra dem säkra i en levande miljö. Om du inte använder de förberedda frågorna behöver du någon form av indatasanering för att förhindra SQL-attacker, och beroende på hur det görs kan du behöva massera tillbaka resultatuppsättningarna.

Sammanfattningsvis finns det inga betydande prestandaproblem, men det finns en betydande säkerhetsfördel. Således den officiella rekommendationen att använda förberedda uttalanden.

I din fråga talar du om "den gemensamma eshopen". Den "vanliga eshopen" kommer aldrig att ha tillräckligt med trafik för att oroa sig för prestandaproblemet, om det finns något. Säkerhetsfrågan i andra änden...



  1. Exportera SQLite-databas till XML-fil

  2. Var kan man ändra värdet på small_case_table_names=2 i Windows xampp

  3. Databasschema för chatt:privat och grupp

  4. Välj bara de rader som matchar alla värden som anges under IN-satsen