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

Клауза WHERE при присъединяване, добавяща 4 секунди към времето за изпълнение

Най-вероятното обяснение е, че MySQL избира различен план за изпълнение, когато добавите този предикат.

Можете да сравните изхода EXPLAIN от двете заявки, тази с journey_day.day=3 предикат и този без.

Бих се осмелил да предположа, че MySQL избира различен ред на присъединяване и MySQL избира да използва индекс, който има day като водеща колона, когато предикатът е включен. И вероятно това води до много повече редове за достъп и проверка или вероятно MySQL генерира голям междинен набор, преди да филтрира редове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Превенция срещу MySQL инжектиране

  2. MySQL Store Image BLOB Лоша практика Производителност

  3. Проблем с сравнението на дати в MySQL

  4. Направете автоматично увеличение за запълване на изтрития номер

  5. Шифроване на парола в изявление за вмъкване в postgresql хвърля грешка (Необходимо е да се добави изрично привеждане на типа)