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

jak optimalizovat tento dotaz (zahrnuty 4 mm tabulky)

Musíte se zbavit GROUP BY zde.

MySQL není dobré ji optimalizovat.

Přepište svůj dotaz takto:

SELECT  *
FROM    product_table
WHERE   EXISTS
        (
        SELECT  NULL
        FROM    product_table__category_1__mm mm_1
        JOIN    category cat_1
        ON      cat_1.uid = mm_1.uid_foreign
        WHERE   mm_1.uid_local = product_table.uid
                AND mm_1.uid_foreign IN (7, 8)
        )
        AND
        …        

Vytvořte indexy:

product_table__category_*__mm (uid_local, uid_foreign)

nebo lépe, deklarujte je PRIMARY KEYs na product_table__category_*__mm :

ALTER TABLE product_table__category_*__mm ADD CONSTRAINT pk_pc*mm_local_foreign (uid_local, uid_foreign)


  1. Jak zobrazím statistiku dotazů v databázi na webu Wordpress?

  2. Jak mohu načíst instanci naposledy přidané položky

  3. Jak spojit tabulky dohromady - SQL

  4. mysql hesla Připojení k MySQL pomocí PHP