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

MySQL a vnořená sada:pomalé JOIN (bez použití indexu)

Aha, právě mě to napadlo.

Vzhledem k tomu, že požadujete vše v tabulce, mysql se místo toho rozhodne použít úplné skenování tabulky, protože to považuje za efektivnější.

Chcete-li získat nějaké klíčové využití, přidejte některé filtry, které omezí hledání každého řádku ve všech tabulkách.

Aktualizace odpovědi:

Váš druhý dotaz nedává smysl. Zbývá vám připojit se k lca, ale máte v něm filtr, který sám o sobě neguje levé připojení. V posledním kroku dotazu také hledáte data, což znamená, že budete muset prohledat všechny lt, lc a lca, abyste svá data našli. Také nemáte žádný index se sloupcem 'type' na levém okraji umístění, takže k nalezení dat stále potřebujete úplné prohledání tabulky.

Pokud byste měli nějaká vzorová data a příklad toho, čeho se snažíte dosáhnout, bylo by možná snazší pomoci.



  1. Jak vymazat mezipaměť dotazů v mysql?

  2. MySql sečte prvky sloupce

  3. Jaký je maximální počet znaků, které nvarchar(MAX) pojme?

  4. Najděte duplicitní položky ve sloupci