sql >> Database >  >> RDS >> Mysql

MySQL-query pijnlijk traag bij grote gegevens

Tabel optimaliseren

Om een ​​basislijn vast te stellen, zou ik eerst aanraden om een ​​OPTIMALISEER TABEL commando op beide tabellen. Houd er rekening mee dat dit enige tijd kan duren. Van de docs :

Indexeren

Als ruimte- en indexbeheer geen probleem is, kunt u proberen een samengestelde index op

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

Dit is aan te raden als u vaak . een subset van deze kolommen uiterst links gebruikt in uw vragen. Het queryplan geeft aan dat het de cat1 . kan gebruiken index van product_categories . Dit omvat hoogstwaarschijnlijk alleen de cat1 kolom. Door alle vier categoriekolommen aan een index toe te voegen, kan deze efficiënter zoeken naar de gewenste rij. Uit de docs :

Structuur

Bovendien, aangezien uw tabel 90 kolommen . heeft u moet zich er ook van bewust zijn dat een bredere tabel kan leiden tot langzamere queryprestaties . U kunt overwegen Verticaal partitioneren uw tafel in meerdere tabellen:



  1. MySQL-fout 1005?

  2. voeg twee tabellen samen met het aantal records uit de tweede tabel op basis van voorwaarde

  3. PHP PDO voorbereide verklaring -- MySQL LIKE query

  4. SQL Server Invoegen indien niet bestaat