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

java - compromis entre performances SQL et concurrence élevée

SÉLECTIONNER

        S.carOwnerID ,
        S.name,
        S.mobile,
        S.coopName,
        S.VIN,
        s.policyNO,
        S.effectiveDate,
        S.expiryDate,
        s.plateNo,
        (
            CASE
            WHEN s.num > 1 THEN
                1
            WHEN s.num = 1 THEN
                0
            END
        ) AS carState
    FROM
        (
            SELECT
                c.carOwnerID,
                c.name,
                c.mobile,
                c.coopName,
                c.VIN,
                p.policyNO,
                p.effectiveDate,
                p.expiryDate,
                c.plateNo,
                count(p.PlateNo) AS num
            FROM
                customer C
            LEFT JOIN policy P ON C.carOwnerID = P.carOwnerID
            WHERE
                date_add(
                    P.createTime,
                    INTERVAL 11.5 HOUR
                ) > NOW()
    
    ) s
    WHERE
        s.num > 0;

Il est possible d'utiliser simplement la corrélation multi-tables. Si vous rencontrez une concurrence élevée, des défauts de performances apparaîtront immédiatement

.
PHP中文网PHP中文网2712 Il y a quelques jours535

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

  • 漂亮男人

    漂亮男人2017-05-17 10:11:04

    L'association multi-tables ne signifie pas des performances SQL élevées. La perte d'efficacité d'un SQL trop complexe n'est pas inférieure aux verrous externes, etc., et il n'y a pas de conflit avec une concurrence élevée.

    Il est recommandé de diviser le relevé en relevés simples et d'utiliser des mécanismes de verrouillage et de compensation pour garantir la transactionnalité.

    répondre
    0
  • Annulerrépondre