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 !!
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.
Oui, merci, c’est bien la réponse b.
Voilà, c’est corrigé
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 ?
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.
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
Merci de m’avoir signalé l’oubli, le lien est corrigé !
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.
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.
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.