sql >> Databasteknik >  >> RDS >> Mysql

MySQL-frågan är smärtsamt långsam på stora data

Optimera tabell

För att fastställa en baslinje rekommenderar jag först att köra en OPTIMIZE TABLE kommandot på båda tabellerna. Observera att detta kan ta lite tid. Från dokumenten :

Indexering

Om utrymme och indexhantering inte är ett problem kan du försöka lägga till en sammansatta index

product_categories.cat4, product_categories.cat3, product_categories.cat2, product_categories.cat1

Detta skulle rekommenderas om du ofta använder en delmängd längst till vänster av dessa kolumner i dina frågor. Frågeplanen indikerar att den kan använda cat1 index för product_categories . Detta inkluderar troligen bara cat1 kolumn. Genom att lägga till alla fyra kategorikolumnerna i ett index kan den mer effektivt söka till önskad rad. Från dokumenten :

Struktur

Dessutom, med tanke på att din tabell har 90 kolumner du bör också vara medveten om att en bredare tabell kan leda till långsammare frågeprestanda . Du kanske vill överväga Vertikal partitionering din tabell i flera tabeller:



  1. PERIOD_DIFF() Exempel – MySQL

  2. Varför MySQL helt omformatera VIEW-frågetexten?

  3. Det gick inte att påbörja en distribuerad transaktion

  4. Kan du inte ansluta till databasen mysql?