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

Разбиране на въздействието върху производителността за търсене на кортежи в mysql

Според този въпрос , поддръжката на кортежи в MySQL не е оптимизирана. Както @O.Jones пише в своя коментар, плановщикът на заявки в MySQL е изключително сложен звяр и неща, които трябва работа не винаги се държат както бихте очаквали.

Вярвам, че втората ви заявка е по-бърза, защото първата клауза where dept_id in (101, 103) намалява пространството за търсене за втория, който използва кортежите. Оптимизаторът на заявки трябва направете това автоматично, но поне във вашия пример не го прави.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. общ приятел sql интеграционна сложна заявка

  2. mysql - Оптимизиране на ORDER BY COALESCE върху колона за присъединена таблица

  3. Ефективно определяне дали даден бизнес е отворен или не въз основа на работното време на магазина

  4. вземете масив от стойности на колони в codeigniter

  5. Как да добавя тегла към таблица на MySQL и да избирам произволни стойности според тях?