sql >> Database teknologi >  >> RDS >> Mysql

hvordan man optimerer denne forespørgsel (4 mm tabeller involveret)

Du skal slippe af med GROUP BY her.

MySQL er ikke god til at optimere det.

Omskriv din forespørgsel som denne:

VÆLG *FRA product_table WHERE EXISTS (VÆLG NULL FRA 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 …foreign (udenlandsk) (7, 7) /kode>

Opret indekserne:

product_table__category_*__mm (uid_local, uid_foreign) 

eller bedre erklære dem PRIMÆRE NØGLERproduct_table__category_*__mm :

ÆNDRINGSTABEL product_table__category_*__mm TILFØJ KONSTRAINT pk_pc*mm_local_foreign (uid_local, uid_foreign) 


  1. SET og Select Query kombinerer Kør i en enkelt MySql-forespørgsel for at bestå resultatet i pentaho

  2. SQLite ÆNDRINGSTABEL

  3. Genstarter transaktion i MySQL efter dødvande

  4. Datatypepræference i SQL Server