recherche

Maison  >  Questions et réponses  >  le corps du texte

Une interruption de connexion a été rencontrée lors de l'exécution d'une requête spécifique

J'ai reçu un message de perte de connexion au serveur MySQL de 2013 lors d'une requête vers MySQL hébergée sur une instance AWS. La requête ci-dessous est la seule à provoquer cette erreur (les autres requêtes fonctionnent correctement), et cette requête s'exécute sans problème sur un conteneur Synology Docker exécutant MySQL. La seule chose unique que j'ai trouvée est que cette requête utilise un CTE alors que les autres requêtes exécutées avec succès ne le font pas. AWS MySQL est 8.0.23 et NAS Docker MySQL est 8.0.28. J'ai vérifié les premières choses comme le nombre maximal de connexions, les délais d'attente, etc. et l'instance AWS utilise des valeurs identiques ou supérieures à celles des paramètres de l'instance NAS Docker. J'ai également essayé d'utiliser des tables de données plus petites et de réorganiser les tables de données pour éliminer tout risque de corruption des données. Je cherche depuis quelques jours mais je ne trouve aucune indication sur l'origine du problème. Quelqu'un ici a-t-il des suggestions sur la prochaine étape ? Merci!

USE ce_test;
SET @lowlim = 0;
SET @upplim = 0;
with orderedList AS (
SELECT
    576_VMC_Sol_Savings_Pct,
    ROW_NUMBER() OVER (ORDER BY 576_VMC_Sol_Savings_Pct) AS row_n
FROM vmctco
),

quartile_breaks AS (
SELECT
    576_VMC_Sol_Savings_Pct,
    (
    SELECT 576_VMC_Sol_Savings_Pct AS quartile_break
    FROM orderedList
    WHERE row_n = FLOOR((SELECT COUNT(*) FROM vmctco)*0.75)
    ) AS q_three_lower,
    (
    SELECT 576_VMC_Sol_Savings_Pct AS quartile_break
    FROM orderedList
    WHERE row_n = FLOOR((SELECT COUNT(*) FROM vmctco)*0.75) + 1
    ) AS q_three_upper,
    (
    SELECT 576_VMC_Sol_Savings_Pct AS quartile_break
    FROM orderedList
    WHERE row_n = FLOOR((SELECT COUNT(*) FROM vmctco)*0.25)
    ) AS q_one_lower,
    (
    SELECT 576_VMC_Sol_Savings_Pct AS quartile_break
    FROM orderedList
    WHERE row_n = FLOOR((SELECT COUNT(*) FROM vmctco)*0.25) + 1
    ) AS q_one_upper
    FROM orderedList
    ),

iqr AS (
SELECT
    576_VMC_Sol_Savings_Pct,
    (
    (SELECT MAX(q_three_lower)
        FROM quartile_breaks) +
    (SELECT MAX(q_three_upper)
        FROM quartile_breaks)
    )/2 AS q_three,
    (
    (SELECT MAX(q_one_lower)
        FROM quartile_breaks) +
    (SELECT MAX(q_one_upper)
        FROM quartile_breaks)
    )/2 AS q_one,
    1.5 * ((
    (SELECT MAX(q_three_lower)
        FROM quartile_breaks) +
    (SELECT MAX(q_three_upper)
        FROM quartile_breaks)
    )/2 - (
    (SELECT MAX(q_one_lower)
        FROM quartile_breaks) +
    (SELECT MAX(q_one_upper)
        FROM quartile_breaks)
    )/2) AS outlier_range
FROM quartile_breaks
)

SELECT MAX(q_one) OVER () - MAX(outlier_range) OVER () AS lower_limit,
    MAX(q_three) OVER () + MAX(outlier_range) OVER () AS upper_limit
INTO @lowlim, @upplim
FROM iqr
LIMIT 1;

SELECT @lowlim, @upplim;

P粉148782096P粉148782096276 Il y a quelques jours450

répondre à tous(1)je répondrai

  • P粉322319601

    P粉3223196012024-03-23 09:27:53

    Résolu : j'ai continué et mis à jour la version sur l'instance AWS vers la même version que le NAS (8.0.28) et les requêtes s'exécutent désormais correctement.

    répondre
    0
  • Annulerrépondre