Mysql
 sql >> база данни >  >> RDS >> Mysql

емулирани подготвени изявления срещу реални подготвени изявления

Прав си, истински подготвени изявления трябва да се поддържат от сървъра. Истински подготвен означава запитване на базата данни в две стъпки.

Първата стъпка се състои в изпращане на шаблон на заявка, който сървърът може да компилира предварително. Машината на базата данни също така подготвя предварително плана за изпълнение (най-вече кои индекси ще бъдат използвани за обслужване на действителната заявка).

Втората стъпка е да дадете действителни стойности на заместващите и да изпълните действителната заявка с тези параметри.

Това обикновено позволява по-бързо изпълнение на няколко подобни заявки, тъй като 1. заявката вече е била предварително компилирана (планът за изпълнение вече е изчислен) и 2. само стойностите на параметрите се изпращат впоследствие.

Емулираната заявка е просто синтактична захар, която позволява само по-лесно изпращане (не по-бързо изпълнение) на няколко последователни подобни заявки. Пълните SQL оператори се изпращат на сървъра всеки път, когато се изпълнява емулирана заявка.

Когато сървърът не поддържа реални подготвени оператори, все пак се препоръчва използването на емулирани подготвени оператори, тъй като драйверът все още се грижи за екранирането на стойности вместо вас, което прави SQL инжектирането по-малко вероятно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на сайт за видео споделяне, трябва видео плейър

  2. Как да напиша (MySQL) LIMIT в SQL Server?

  3. Как да добавя дни към дата в MySQL

  4. MySQL и NHibernate. Как да коригирате грешката:Колона „ReservedWord“ не принадлежи на таблица ReservedWords?

  5. Mysql2::Грешка:Достъпът е отказан за потребител 'test'@'localhost' до база данни 'depot_test'