sql >> Databáze >  >> RDS >> Mysql

Pochopení dopadů na výkon pro vyhledávání n-tice mysql

Podle této otázky , podpora n-tic v MySQL není optimalizována. Jak píše @O.Jones ve svém komentáři, plánovač dotazů v MySQL je mocně složitá bestie a věci, které by měly práce se nechovají vždy tak, jak byste očekávali.

Věřím, že váš druhý dotaz je rychlejší, protože první kde klauzule dept_id in (101, 103) zmenšuje prostor pro vyhledávání pro druhý, který používá n-tice. Optimalizátor dotazů by měl udělejte to automaticky, ale alespoň ve vašem příkladu tak nečiní.

Nevěřím tomu IN klauzule je problém - je to porovnání n-tice, které skenuje celou tabulku a nepoužívá dostupné indexy.



  1. Chyba syntaxe nebo porušení přístupu:1055 Výraz #8 seznamu SELECT není v klauzuli GROUP BY a obsahuje neagregovaný sloupec

  2. Jak napsat aplikaci .Net, která funguje se SqlServerem i Oracle (nyní, když je System.Data.OracleClient zastaralý)

  3. Použití PHP a MySQL k naplnění rozevíracího seznamu

  4. AES _Šifrování v Mysql , Dešifrování v C#.Net