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

Присъединяване спрямо подзаявка

Подзаявките са логически правилният начин за решаване на проблеми от формата „Вземете факти от А, условно на факти от Б“. В такива случаи е по-логично да се постави B в подзаявка, отколкото да се направи присъединяване. Също така е по-безопасно в практически смисъл, тъй като не е нужно да внимавате да получавате дублирани факти от А поради множество мачове срещу Б.

На практика обаче отговорът обикновено се свежда до производителност. Някои оптимизатори изсмукват лимони, когато им се даде обединяване спрямо подзаявка, а някои изсмукват лимони по друг начин и това е специфично за оптимизатора, специфично за версията на СУБД и специфично за заявката.

Исторически погледнато, изричните обединявания обикновено печелят, следователно установената мъдрост, че обединяванията са по-добри, но оптимизаторите стават все по-добри през цялото време и затова предпочитам първо да пиша заявки по логически последователен начин и след това да преструктурирам, ако ограниченията на производителността го налагат.



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

  2. Инсталирайте MySQL на Ubuntu 14.04

  3. Как да създадете блог в PHP и MySQL база данни - Backend

  4. Как да промените стойността на автоматично увеличение на MySQL / MariaDB база данни

  5. Отстраняване на неизправности Грешка с незаконен микс от съпоставяне в mysql