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

JOINS срещу while изявления

Ако индексите се използват правилно, то почти винаги е по-ефективно за да използвате JOIN. Акцентът е добавен, защото най-добрата ефективност не винаги е равна на най-добрата производителност.

Въпреки това всъщност няма универсален отговор; трябва да анализирате заявка с помощта на EXPLAIN за да се гарантира, че индексите наистина се използват, че няма ненужно използване на временна таблица и т.н. В някои случаи , условията се съгласуват за създаване на заявка, която просто не може използвайте индекси. В тези случаи може бъдете по-бързи, за да разделите заявките на парчета по начина, който сте посочили.

Ако срещнах такъв код в съществуващ проект, бих го поставил под въпрос:проверете заявката, помислете за различни начини за изпълнение на заявката, уверете се, че тези неща са взети под внимание, изградете научен, подкрепен с факти случай за или против практиката . Уверете се, че първоначалните разработчици са направили дължимата си проверка, тъй като неизползването на JOIN повърхностно сочи към лош дизайн на база данни или заявка. В крайна сметка обаче резултатите говорят силно и ако всички оптимизации и корекции все още водят до по-бавно присъединяване, отколкото предоставя използването на фрагменти от заявка, тогава преобладава по-бързото решение. Сравнивайте и действайте въз основа на резултатите от бенчмарка; няма случай в софтуерния дизайн, че трябва да замените лошото представяне за придържане към произволни правила за това какво трябва или не трябва да правите. Най-ефективният метод е най-добрият метод.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. КЪДЕТО всичко НЕ Е NULL

  2. Изпълнение на множество собствени заявки наведнъж

  3. Броят на обвързаните променливи на PHP Mysql PDO не съвпада с броя на токените

  4. Управление на Liquibase с модел за разработка на GitFlow

  5. Непървични външни ключове в Django