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

Редът на таблиците в прави съединения, без директиви за подсказки, влияе ли на производителността?

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

Можете също така да уведомите оптимизатора за плана за изпълнение.

Подсказката ORDERED кара Oracle да обедини таблиците в реда, в който се появяват в клаузата FROM.

Например, този израз свързва таблица TAB1 с таблица TAB2 и след това свързва резултата с таблица TAB3:

 SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
     FROM TAB1, TAB2, TAB3
    WHERE TAB1.COL1 = TAB2.COL1
         AND TAB2.COL1 = TAB3.COL1;

Ако пропуснете подсказката ORDERED от SQL израз, изпълняващ обединяване, оптимизаторът избира реда, в който да обедини таблиците. Може да искате да използвате подсказката ORDERED, за да посочите ред на присъединяване, ако знаете нещо за броя на избраните редове от всяка таблица, което оптимизаторът не знае. Такава информация ще ви позволи да изберете вътрешна и външна таблица по-добре, отколкото оптимизаторът би могъл.

Обикновено, ако анализирате таблиците, оптимизаторът избира ефективен звезден план. Можете също да използвате съвети, за да подобрите плана. Най-прецизният метод е да подредите таблиците в клаузата FROM по реда на ключовете в индекса, като голямата таблица е последна. След това използвайте следните съвети:

/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. да изтриете качения файл от масив от идентификатори, когато са изтрити в joomla?

  2. Мога ли да създам изглед с параметър в MySQL?

  3. java.sql.SQLException:Не е намерен подходящ драйвер за тест на localhost

  4. Как да изчислим процента?

  5. Как мога да експортирам няколко колони от MySQL в текстов файл