Cette rubrique décrit les paramètres de configuration de la fonctionnalité In-Memory Column Index (IMCI) dans PolarDB for MySQL.
Référence rapide
| Paramètre | Valeur par défaut | Valeurs valides | Unité |
|---|---|---|---|
loose_imci_auto_update_statistic |
ASYNC |
ASYNC, SYNC, OFF |
— |
loose_imci_enable_window_function |
2 |
0, 1, 2 |
— |
loose_imci_max_enum_join_pairs |
2000 |
0–4294967295 |
count |
loose_imci_min_virtual_memory |
DBNodeClassMemory * 3 / 20 |
1–9223372036854775807 |
bytes |
loose_imci_max_virtual_memory |
9223372036854775807 |
1–9223372036854775807 |
bytes |
loose_imci_optimizer_switch |
'force_hybrid_index_search=OFF' |
'force_hybrid_index_search=OFF', 'force_hybrid_index_search=ON' |
— |
loose_imci_ap_threshold |
50000 |
1–18446744073709551615 |
row count |
loose_cost_threshold_for_imci |
50000 |
1–18446744073709551615 |
row count |
loose_imci_enable_query_trace |
OFF |
OFF, ON |
— |
loose_polar_enable_implicit_imci_with_create_table |
OFF |
OFF, ON |
— |
loose_imci_columnar_advise_buffer_size |
8388608 |
0–18446744073709551615 |
bytes |
loose_etl_from_imci |
OFF |
OFF, ON |
— |
loose_etl_from_imci_compress |
OFF |
OFF, ON |
— |
loose_imci_default_pack_shift |
14 (16 pour PolarDB for MySQL 8.0.1.1.36+) |
7–18 |
— |
loose_slow_log_record_imci |
OFF |
OFF, ON |
— |
loose_imci_default_write_policy |
Tradeoff |
Tradeoff, ForCapacity, ForPerformance, Skip4K |
— |
loose_imci_auto_update_statistic
Détermine si l'optimiseur de requêtes IMCI recalcule les statistiques lorsque les statistiques existantes sont obsolètes.
Valeur par défaut :
ASYNCValeurs valides :
ASYNC,SYNC,OFF
| Valeur | Comportement | Cas d'utilisation |
|---|---|---|
ASYNC (par défaut) |
Recalcule les statistiques via un échantillonnage asynchrone. La requête s'exécute immédiatement sans attendre l'actualisation. | Convient à la plupart des charges de travail. Minimise la latence des requêtes tout en maintenant des statistiques raisonnablement à jour. |
SYNC |
Recalcule les statistiques via un échantillonnage synchrone. La requête attend l'actualisation des statistiques avant de s'exécuter. | Recommandé lorsque la précision du plan prime sur la latence, par exemple pour des traitements par lots planifiés où un plan sous-optimal serait coûteux. |
OFF |
Désactive le recalcul automatique. Les statistiques ne sont pas actualisées lorsqu'elles deviennent obsolètes. | À utiliser uniquement si vous gérez les statistiques manuellement et souhaitez éviter toute interférence avec la collecte automatique. |
loose_imci_enable_window_function
Définit si l'accélération IMCI s'applique aux instructions SQL contenant des fonctions de fenêtrage.
Valeur par défaut :
2Valeurs valides :
0,1,2
| Valeur | Comportement | Cas d'utilisation |
|---|---|---|
2 (par défaut) |
L'accélération IMCI s'applique à toutes les instructions SQL avec fonctions de fenêtrage, y compris celles spécifiant des cadres (frames). | Adapté à la majorité des charges de travail. Offre la couverture d'accélération la plus large. |
1 |
L'accélération IMCI concerne uniquement les instructions SQL dont les fonctions de fenêtrage ne spécifient aucun cadre. | Utile si vous constatez des problèmes d'exactitude avec les fonctions de fenêtrage cadrées sous accélération IMCI. |
0 |
Désactive l'accélération IMCI pour toutes les instructions SQL utilisant des fonctions de fenêtrage. | Réservé au dépannage ou lorsque les requêtes avec fonctions de fenêtrage doivent revenir à une exécution sur stockage ligne. |
loose_imci_max_enum_join_pairs
Nombre maximal de plans d'exécution équivalents évalués par l'optimiseur de requêtes IMCI lorsque IMCI et la réorganisation des jointures sont activés.
Valeur par défaut :
2000Valeurs valides :
0–4294967295Unité : count
Une valeur plus élevée permet à l'optimiseur d'envisager davantage d'ordres de jointure. Cela peut améliorer la qualité du plan pour les requêtes complexes multi-tables, mais augmente le temps de planification.
loose_imci_min_virtual_memory
Quantité minimale de mémoire allouée à un IMCI lors d'une requête.
Valeur par défaut :
DBNodeClassMemory * 3 / 20Valeurs valides :
1–9223372036854775807Unité : bytes
La valeur par défaut dépend de la mémoire de la classe de nœud. Augmentez cette valeur si les requêtes IMCI manquent de mémoire sur des nœuds dotés d'une grande capacité mémoire.
loose_imci_max_virtual_memory
Quantité maximale de mémoire qu'un IMCI peut utiliser durant une requête.
Valeur par défaut :
9223372036854775807Valeurs valides :
1–9223372036854775807Unité : bytes
La valeur par défaut est pratiquement illimitée. Définissez une valeur inférieure pour plafonner l'utilisation mémoire par requête IMCI lors de l'exécution de charges de travail mixtes.
loose_imci_optimizer_switch
Indique si l'optimiseur force un plan hybride pour accélérer les requêtes sur tables larges.
Valeur par défaut :
'force_hybrid_index_search=OFF'Valeurs valides :
'force_hybrid_index_search=OFF','force_hybrid_index_search=ON'
| Valeur | Comportement |
|---|---|
'force_hybrid_index_search=OFF' (par défaut) |
L'optimiseur sélectionne automatiquement le meilleur plan sans imposer de plan hybride. |
'force_hybrid_index_search=ON' |
Force un plan hybride pour les requêtes sur tables larges qui remplissent les conditions requises. |
Régler ce paramètre sur ON reste sans effet si la table ne possède aucune statistique ou si l'estimation de cardinalité et le calcul de coût pour les IMCI ne sont pas activés. Dans ces cas, la réorganisation des jointures pour les IMCI demeure désactivée.
loose_imci_ap_threshold
Seuil de nombre de lignes déterminant si une instruction SQL est routée vers un nœud de stockage colonne.
Valeur par défaut :
50000Valeurs valides :
1–18446744073709551615Unité : row count
Si le nombre estimé de lignes balayées par une instruction SQL dépasse ce seuil, l'instruction est dirigée vers un nœud de stockage colonne. Par exemple, avec la valeur par défaut de 50000, toute instruction estimée balayer plus de 50 000 lignes est distribuée à un nœud de stockage colonne.
Les paramètres loose_imci_ap_threshold et loose_cost_threshold_for_imci fonctionnent conjointement. loose_imci_ap_threshold gère le routage vers les nœuds de stockage colonne, tandis que loose_cost_threshold_for_imci détermine le plan d'exécution utilisé après le routage. Configurez ces deux paramètres ensemble pour garantir un comportement cohérent.
loose_cost_threshold_for_imci
Seuil de nombre de lignes déterminant l'utilisation d'un plan d'exécution de stockage colonne sur un nœud dédié.
Valeur par défaut :
50000Valeurs valides :
1–18446744073709551615Unité : row count
Une fois une instruction routée vers un nœud de stockage colonne (voir loose_imci_ap_threshold), ce seuil détermine le plan d'exécution. Si le nombre estimé de lignes balayées excède cette valeur, un plan d'exécution de stockage colonne est employé. Sinon, le système utilise un plan d'exécution de stockage ligne.
Par exemple, avec la valeur par défaut de 50000, les instructions estimées balayer plus de 50 000 lignes utilisent un plan d'exécution de stockage colonne. Toutes les autres reviennent à un plan d'exécution de stockage ligne.
loose_imci_enable_query_trace
Spécifie si le noyau génère des journaux d'erreurs durant l'optimisation des requêtes IMCI.
Valeur par défaut :
OFFValeurs valides :
OFF,ON
Activez ce paramètre pour collecter des informations de diagnostic lors du dépannage de problèmes d'optimisation de requêtes IMCI. Désactivez-le en production afin d'éviter la surcharge liée aux journaux.
loose_polar_enable_implicit_imci_with_create_table
Détermine si un IMCI couvrant toute la table est automatiquement ajouté à chaque nouvelle table lors de sa création.
Valeur par défaut :
OFFValeurs valides :
OFF,ON
Lorsqu'il est réglé sur ON, toutes les tables créées avec CREATE TABLE incluent automatiquement un IMCI complet. Cette option s'avère utile pour appliquer l'accélération IMCI à toutes les nouvelles tables sans créer explicitement d'index.
loose_imci_columnar_advise_buffer_size
Quantité de mémoire disponible pour la procédure stockée dbms_imci.columnar_advise().
Valeur par défaut :
8388608(8 MiB)Valeurs valides :
0–18446744073709551615Unité : bytes
Augmentez cette valeur si dbms_imci.columnar_advise() manque de mémoire lors de l'analyse de grandes tables.
loose_etl_from_imci
Contrôle la lecture des données depuis des nœuds de stockage colonne en lecture seule pendant les opérations ETL.
Valeur par défaut :
OFFValeurs valides :
OFF,ON
Réglez sur ON pour décharger les lectures ETL vers des nœuds de stockage colonne en lecture seule, réduisant ainsi la charge des nœuds principaux.
loose_etl_from_imci_compress
Détermine si les fichiers sont compressés lors de la lecture de données depuis des nœuds de stockage colonne en lecture seule.
Valeur par défaut :
OFFValeurs valides :
OFF,ON
Activez la compression pour réduire le volume des transferts réseau lors de la lecture de données depuis des nœuds de stockage colonne en lecture seule pendant les opérations ETL.
loose_imci_default_pack_shift (mis à jour dans PolarDB for MySQL 8.0.1.1.36)
Taille des groupes de lignes pour les IMCI.
Valeur par défaut :
14(16pour PolarDB for MySQL 8.0.1.1.36 et versions ultérieures)Valeurs valides :
7–18
Pour les clusters exécutant PolarDB for MySQL 8.0.1.1.36 ou une version ultérieure, la valeur par défaut est 16.
loose_slow_log_record_imci
Indique si les informations relatives à IMCI sont ajoutées aux journaux des requêtes lentes.
Valeur par défaut :
OFFValeurs valides :
OFF,ON
Activez ce paramètre pour inclure les métadonnées IMCI dans les entrées du journal des requêtes lentes, ce qui facilite le diagnostic des requêtes IMCI lentes.
loose_imci_default_write_policy
Politique d'écriture pour les données IMCI.
Valeur par défaut :
TradeoffValeurs valides :
Tradeoff,ForCapacity,ForPerformance,Skip4K
| Valeur | Priorité | Comportement | Cas d'utilisation |
|---|---|---|---|
Tradeoff (par défaut) |
Équilibrée | Basé sur Skip4K. Les écritures inférieures à 1 Mo se comportent comme ForPerformance ; les écritures de 1 Mo ou plus tentent de répartir les données sur plusieurs fichiers. |
Convient à la plupart des charges de travail. Équilibre les performances E/S et l'efficacité du stockage sans réglage manuel. |
ForCapacity |
Efficacité du stockage | Répartit les données sur plusieurs fichiers pour minimiser la fragmentation. Génère au maximum un fragment de 4 Ko par écriture. | Lorsque l'espace de stockage constitue la préoccupation principale. |
ForPerformance |
Performances E/S | Sélectionne le fichier avec l'ExtentSize optimal pour chaque écriture. Offre les meilleures performances E/S mais engendre la fragmentation et la surcharge d'espace les plus élevées. |
Charges de travail intensives en écriture où la performance prime sur l'efficacité du stockage. |
Skip4K |
Efficacité modérée | Utilise la même logique de fractionnement que ForCapacity, mais ignore l'extent de 4 Ko lorsque plus de 4 Ko sont écrits. Génère au maximum un fragment de 16 Ko par écriture. |
Lorsque vous souhaitez des fragments légèrement plus grands que ceux autorisés par ForCapacity, en échangeant une fragmentation supplémentaire minime contre des chemins d'écriture simplifiés. |