Bien que SQL Server et MySQL soient tous deux des RDBM, MySQL possède de nombreuses fonctionnalités uniques qui peuvent illustrer la différence entre novice et expert.
Votre première étape devrait être de s'assurer que le candidat est à l'aise avec la ligne de commande, et pas seulement avec les outils GUI tels que phpMyAdmin. Pendant l'interview, essayez de demander au candidat d'écrire du code MySQL pour créer une table de base de données ou ajouter un nouvel index. Ce sont des requêtes très basiques, mais exactement le type que les outils graphiques empêchent les novices de maîtriser. Vous pouvez revérifier les réponses avec quelqu'un qui est plus familier avec MySQL. Le candidat peut-il démontrer sa connaissance du fonctionnement de JOIN? Par exemple, essayez de demander au candidat de construire une requête qui renvoie toutes les lignes de la table 1 lorsqu'aucune entrée correspondante n'existe dans la table 2. La réponse devrait impliquer un LEFT JOIN.
Demandez au candidat de discuter des stratégies de sauvegarde et des différentes forces et faiblesses de chacune. Le candidat doit savoir que la sauvegarde directe des fichiers de la base de données n'est pas une stratégie efficace à moins que toutes les tables soient MyISAM. Le candidat doit absolument mentionner mysqldump comme une pierre angulaire pour les sauvegardes. Les solutions de sauvegarde plus sophistiquées incluent ibbackup/innobackup et les instantanés LVM. Idéalement, le candidat devrait également discuter de la manière dont les sauvegardes peuvent affecter les performances (une solution courante consiste à utiliser un serveur esclave pour effectuer des sauvegardes).
Le candidat a-t-il une expérience de la réplication? Quelles sont les configurations de réplication courantes et les avantages de chacun? La configuration la plus courante est maître-esclave, permettant à l'application de décharger des requêtes SELECT sur des serveurs esclaves, ainsi que de prendre des sauvegardes à l'aide d'un esclave pour éviter les problèmes de performance sur le maître. Une autre configuration courante est master-master, le principal avantage étant la possibilité de modifier les schémas sans affecter les performances. Assurez-vous que le candidat traite des problèmes courants tels que le clonage d'un serveur esclave (mysqldump + notation of the binlog position), chargez la distribution en utilisant un équilibreur de charge ou un proxy MySQL, resolving slave lag en décomposant des requêtes plus volumineuses en morceaux, et comment promouvoir un esclave pour qu'il devienne un nouveau maître.
Comment le candidat pourrait-il résoudre les problèmes de performance? Ont-ils une connaissance suffisante du système d'exploitation et du matériel sous-jacent pour diagnostiquer si un goulot d'étranglement est lié à l'unité centrale, lié à l'E/S ou lié au réseau? Peuvent-ils montrer comment utiliser EXPLAIN pour découvrir des problèmes d'indexation? Mentionnent-ils le journal de requêtes lent ou les options de configuration telles que le tampon de clé, la taille de la table tmp, la taille du pool de tampons innodb, etc? Le candidat apprécie-t-il les subtilités de chaque moteur de stockage?
(MyISAM, InnoDB et MEMORY sont les principaux). Comprennent-ils comment chaque moteur de stockage optimise les requêtes et comment le verrouillage est-il géré? Au minimum, le candidat doit mentionner que MyISAM émet un verrou au niveau de la table alors que InnODB utilise un verrouillage au niveau de la ligne.
Quelle est la manière la plus sûre d'apporter des modifications de schéma à une base de données active? Le candidat doit mentionner la réplication maître-maître, ainsi que les problèmes de verrouillage et de performance de ALTER TABLE en créant une nouvelle table avec la configuration souhaitée et en utilisant mysqldump ou INSERT INTO ... SELECT suivi de RENAME TABLE. Enfin, la seule vraie mesure d'un pro est l'expérience. Si le candidat ne peut pas pointer vers une expérience spécifique de gestion de grands ensembles de données dans un environnement à haute disponibilité, il se peut qu'il ne soit pas en mesure de sauvegarder ses connaissances à un niveau purement intellectuel.
J'ai écrit quelques-uns ici: http://www.alphadevx.com/a/468-Technical-screening-questions-for-a-MySQL-DBA – alphadevx