9
votes

Valider la requête MySQL

Comment puis-je valider une requête MySQL avant de l'exécuter?


0 commentaires

5 Réponses :


1
votes

Exécuter Expliquer Sélectionnez ...

Il analysera votre requête et vous montrera le plan d'exécution (quels algorithmes utilisera-t-il pour exécuter votre requête et dans quel ordre).

C'est une bonne chose en soi, je. e. Toujours le faire, non seulement pour la validation.

Cela vous aidera à comprendre ce qui se passe derrière les rideaux et à construire des requêtes plus efficaces.


0 commentaires

1
votes

Vous pouvez également inclure la requête dans une transaction, puis annuler la transaction. De cette façon, vous pouvez également voir les résultats de la requête (même s'il s'agit d'une requête de mise à jour ou de suppression), puis agissez en conséquence, sans affecter la base de données (sauf si vous commettez la transaction).


0 commentaires

7
votes

Il n'y a pas de bon moyen! Fondamentalement, vous devez exécuter la déclaration; Il n'y a pas de drapeau non.

Deux méthodes courantes sont: p>

  1. précédant une sélection avec expliquer. Cela ne fonctionne que pour sélectionner des déclarations, donc ce n'est pas une solution générale li>
  2. Utilisez des transactions. Ceci n'est que bon dans les tables d'innode 5.x, donc ce n'est pas une solution générale. Cela ne permet également pas de sélectionner que vous ne voulez pas prendre le temps d'exécuter. Li> ol>

    aucun de ces travaux pour moi. La seule solution générale décente que j'ai trouvée est de créer une suite de tests qui crée des tables temporelles à la ressemblance des vrais, puis exécute les requêtes contre eux: P>

    CREATE TEMPORARY TABLE users_test LIKE users;
    CREATE TEMPORARY TABLE auth_test LIKE auth;
    


0 commentaires

0
votes

Ajouter un esclave avec "Blackhole" comme type de table par défaut.

Passez maintenant une requête sur cet esclave.


0 commentaires

2
votes

Je pense que j'ai compris un moyen. Vous pouvez exécuter Préparer et créer une déclaration.

i Devinez dans pseudocode je ferais quelque chose comme ça: xxx

exemple xxx


0 commentaires