ApsaraDB for SelectDB s'appuie sur l'optimiseur Nereids et le moteur d'exécution Pipeline pour optimiser automatiquement les requêtes. Pour répondre aux exigences de haute performance, vous pouvez également optimiser manuellement vos requêtes en utilisant l'accélération par index, les requêtes ponctuelles à forte concurrence, les vues matérialisées ou l'optimisation des jointures.
Planification automatique de l'optimisation des requêtes
Dans SelectDB, l'optimiseur Nereids et le moteur d'exécution Pipeline constituent les technologies centrales de traitement des requêtes. Elles permettent une optimisation approfondie lors des phases d'analyse et d'exécution, améliorant ainsi considérablement les performances des requêtes complexes et l'utilisation des ressources. La figure suivante illustre comment ces technologies optimisent une instruction SQL dans SelectDB.
Le tableau suivant décrit les principales fonctionnalités de chaque technologie. Pour plus d'informations, consultez la documentation correspondante.
|
Technologie |
Description de la fonctionnalité |
|
|
|
Optimisation manuelle des requêtes
Si l'optimiseur Nereids et le moteur d'exécution Pipeline de SelectDB ne répondent pas à vos besoins, utilisez les statistiques pour analyser les données de requête et sélectionnez la stratégie appropriée pour optimiser vos requêtes.
|
Stratégie d'optimisation |
Cas d'usage |
Limites |
|
Optimisation des requêtes ponctuelles soumises à une forte concurrence. Remarque
Une requête ponctuelle consiste à récupérer un petit volume de données répondant à des conditions spécifiques. Elle s'appuie généralement sur des clés primaires ou des colonnes à forte cardinalité. |
|
|
|
Optimisation des requêtes complexes, répétitives et coûteuses en temps de traitement. |
Pour plus d'informations, consultez la rubrique Vue matérialisée synchrone. |
|
|
Accélération des requêtes ou localisation rapide des données dans n'importe quel scénario. |
Les limites dépendent du type d'index. Pour plus de détails, consultez la rubrique Accélération par index. |
|
|
Optimisation des requêtes avec jointure. |
La condition de jointure doit inclure la colonne de distribution de la table de gauche, et cette dernière ne doit utiliser les données que d'une seule partition durant l'exécution. |
|
|
Optimisation des requêtes avec jointure. |
La condition de jointure doit contenir la colonne de distribution de la table de gauche, et les tables de gauche et de droite doivent appartenir au même Colocate Group. |
|
|
Optimisation des scénarios impliquant la jointure d'une grande table avec une petite table. |
L'utilisation d'un Runtime filter impose que l'instruction JOIN respecte les conditions suivantes :
|
|
|
|
|
|
|