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

optimalizace mysql NENÍ V DOTAZU

Pomocí NOT EXISTS

SELECT p.* 
  FROM TABLE_PRODUCT p
 WHERE p.astatus = 'APAST' 
   AND NOT EXISTS (SELECT NULL
                     FROM TABLE_USER_OWNED_AUCTION uoa
                    WHERE uoa.specific_product_id = p.specific_product_id)

Pomocí LEFT JOIN/IS NULL

   SELECT p.* 
     FROM TABLE_PRODUCT p
LEFT JOIN TABLE_USER_OWNED_AUCTION uoa ON uoa.specific_product_id = p.specific_product_id
    WHERE p.astatus = 'APAST' 
      AND uoa.own_id IS NULL

Vysvětlení

Nejoptimálnější dotaz lze určit podle toho, zda porovnávané sloupce mezi těmito dvěma tabulkami mají hodnotu NULL (např. pokud hodnoty specific_product_id v kterékoli tabulce může být NULL ).

Dodatek

Po určení optimálního dotazu se podívejte na vytváření indexy (případně pokrývající indexy) alespoň:

  • specific_product_id
  • TABLE_PRODUCT.astatus


  1. Načte návratové hodnoty pole pl/sql v jazyce Java

  2. Nainstalujte a nakonfigurujte software XAMPP na Windows Server 2019

  3. Jak efektivně používat index v dotazu mysql

  4. Výuková cesta MySQL