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

Кога да използвате STRAIGHT_JOIN с MySQL

Не бих препоръчал използването на STRAIGHT_JOIN без основателна причина. Моят собствен опит е, че MySQL оптимизаторът на заявки избира лош план за заявки по-често, отколкото бих искал, но не достатъчно често, за да го заобикаляте като цяло, което бихте направили, ако винаги използвате STRAIGHT_JOIN.

Моята препоръка е да оставите всички заявки като обикновени JOIN. Ако откриете, че една заявка използва неоптимален план за заявка, бих предложил първо да опитате да пренапишете или преструктурирате заявката малко, за да видите дали след това оптимизаторът ще избере по-добър план за заявка. Освен това, поне за innodb, уверете се, че не само статистическите ви индекси са остарели (ТАБЛИЦА ЗА АНАЛИЗ ). Това може да накара оптимизатора да избере лош план за заявка. Съветите за оптимизатор обикновено трябва да са последното ви средство.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ProxySQL:Всички няколко ресурси

  2. Как да направя заявка между две дати с MySQL?

  3. Как да броим думи в MySQL / заменител на регулярни изрази?

  4. Как да покажа последните изпълнени заявки на MySQL?

  5. Как да инсталирате MySQL Workbench на Windows