30 questions sur MySQL – Réponses de la partie 1

25 octobre 2010 par stephane

Et voici comme promis les réponses de la 1ère partie du quiz. Dans la mesure du possible, j’ai ajouté quelques petits commentaires pour expliquer le pourquoi du comment.

1- b : Toutes les ressources doivent etre étanches entre les instances

2- a : MyISAM garde dans ses méta-données le nombre de lignes de la table

3- b : InnoDB remplit d’abord le 1er fichier, puis le 2nd, on ne peut pas parler de distribution des écritures

4- c : Certains changements de droits n’affectent pas les sessions déjà ouvertes

5- a : Le tablespace principal contient des informations indispensables au bon fonctionnnement d’InnoDB, meme avec innodb_file_per_table

6- c : La réplication ne constitue pas une sauvegarde

7- a : Depuis MySQL 5.1 et la fonctionnalité de plugins, les versions d’InnoDB peuvent sortir indépendamment des versions de MySQL

8- b : En général, MySQL n’utilise qu’un seul index par table et par requete, un index multi-colonnes est donc souvent le plus efficace

9- c

10- a : C’est au cas par cas qu’il faut regarder qui est le plus performant, jointure ou sous-requete

11- c

12- b : Là encore, il faut regarder au cas par cas

13- b : Les autres méthodes sont risquées car elles vont poser des problèmes dans certains cas

14- a : Si vous ne connaissez pas MySQL Sandbox, voici un bon article pour débuter

15- a : En général, ALTER TABLE crée une table temporaire pour chaque modification, mieux vaut donc les regrouper

Faites-moi savoir si certaines réponses vous étonnent, ça pourra être l’occasion de revenir sur ces points dans de prochains posts. Et bien sûr, dans le prochain article vont suivre les 15 questions restantes. Attention, d’une manière générale, les questions qui vont venir sont plus difficiles !!

Mots-clefs : ,

9 commentaires sur “30 questions sur MySQL – Réponses de la partie 1”

  1. Sylvain261 dit :

    Salut
    Merci pour ce quizz.
    Je pense qu’il y a erreur sur la question 8.
    La réponse correcte étant « Un index sur les 2 colonnes type et customer_id » il s’agit de la réponse b et non de la réponse c.

  2. stephane dit :

    Oui, merci, c’est bien la réponse b.
    Voilà, c’est corrigé :)

  3. haptomai dit :

    Bonjour,

    Concernant la question 12, je suis assez étonné car on lit un peu partout qu’il vaut mieux utiliser les procédures stockées plutôt que du code.

    Could you explain please ?

  4. stephane dit :

    Ok, je note ça dans un coin de ma tête pour écrire un post sur les procédures stockées après la deuxième partie du quiz.

  5. Coward anonymous dit :

    Merci pour ces infos, c’est trés intéressant.
    Il manque l’url de l’article proposé en réponse 14 (ben oui, ça m’intéresse ;) )

  6. stephane dit :

    Merci de m’avoir signalé l’oubli, le lien est corrigé !

  7. gene69 dit :

    q1: pas tout à fait d’accord sur l’explication. il me semble que pour les socket tcp, les numéros de ports sont constitutifs de la définition de la socket. Pour moi, le commentaire correct ce n’est pas un problème d’étanchéité de ressource mais par définition d’une socket TCP.

  8. stephane dit :

    MySQL n’utilise pas des socket TCP mais des sockets Unix, qui permettent la communication entre processus sur la même machine. Or une socket Unix n’utilise pas de protocole réseau, donc n’a pas besoin d’un numéro de port lors de sa définition.

  9. Brice dit :

    Concernant les procédures stockées, j’ai constaté à chaque fois que j’en ai eu besoin qu’elles sont nettement plus lentes que le code, mais en effet ça doit dépendre de ce qu’on essaye de faire avec.

    Quoi qu’il en soit, lorsqu’on utilise PDO_MySQL on rencontre un tas de problème avec les procédures stockées, raison pour laquelle je raye tout bonnement cette possibilité quand j’ai un choix à faire.

Laisser une réponse