Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête MySQL douloureusement lente sur des données volumineuses

Optimiser le tableau

Pour établir une ligne de base, je recommanderais d'abord d'exécuter un OPTIMIZE TABLE commande sur les deux tables. Veuillez noter que cela peut prendre un certain temps. À partir de la documentation :

Indexation

Si la gestion de l'espace et des index n'est pas un problème, vous pouvez essayer d'ajouter un index composite sur

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

Cela serait conseillé si vous utilisez un sous-ensemble le plus à gauche de ces colonnes souvent dans vos requêtes. Le plan de requête indique qu'il peut utiliser le cat1 index des product_categories . Cela n'inclut probablement que le cat1 colonne. En ajoutant les quatre colonnes de catégorie à un index, il peut rechercher plus efficacement la ligne souhaitée. Depuis la documentation :

Structure

De plus, étant donné que votre tableau comporte 90 colonnes vous devez également savoir que un tableau plus large peut ralentir les performances des requêtes . Vous voudrez peut-être envisager le Partitionnement vertical votre tableau en plusieurs tableaux :