article interessant, mais un peu de mauvaise soi
Bonjour,
cet article est très interessant et permet d'attirer l'attention sur des negligences des utilisateurs, ainsi que sur des faiblesses de Mysql
Cependant, il me semble que sqlpro fait preuve d'un peu de mauvaise foi ou de beaucoup d'incompétence concernant MySql. Il aurait pu demander l'avis d'un expert MySql, ou montrer une certaine neutralité.
Sur la partie de l'article qui prétend qu'une instruction de ddl valide toute transaction, je n'ai pas compris pourquoi dans l'exemple aucun niveau d'isolation de transaction n'est précisé. Or, la gestion des transactions dépend du niveau d'isolation, et Mysql par défaut est au niveau read uncommitted. J'ai testé son exemple avec le niveau repeatable read et je n'ai pas eu de commit automatique avec une instruction de ddl, sur les autres transactions (j'utilise mysql8).
Pour moi, cela semble relever d'un peu de mauvaise Foi pour un expert en bases de données de parler de transactions sans mentionner l'impact des niveaux d'isolation, et de tester les transactions sans les définir.
Condamner le strict mode de Mysql relève simplement d'un manque de recul. Comment assurer la compatibilité ascendante avec les programmes si à un moment tout était permis et que plus tard on améliore en permettant que certaines choses deviennent interdites? La solution la plus simple est l'introduction d'un strict mode, pour ne pas faire planter les systèmes en production qui ne l'avaient pas respecté, et qui se limitaient à prendre les parties justes de la requête (autrement les utilisateurs se seraient plaints de bugs et il y aurait eu des corrections). Par contre, il est effectivement important d'attirer l'attention des developpeurs mysql sur la nécessité de définir ce mode de fonctionnement pour leur SGBD
avec mysql8, la collation par défaut est utf8mb4 et non latin1.
D'autres ont déja répondu sur d'autres points, sur lesquels je ne reviens pas.
Il aurait été souhaitable pour un tel article de préciser quelle version de MySql a été utilisée.
Des affirmations bien curieuses !
C'est tout de même osé d'affirmer comme vous le faites que MySQL et MariaDB ne seraient ni relationnels ni transactionnels, alors qu'ils s'appuient sur la motorisation InnoDB.
Votre démonstration est entachée de nombreuses approximations.
Bien à vous.
Denis Szalkowski, DBA
NB Je forme, j'audite, je fais des prestations sur MySQL depuis 2001 et sur MariaDB depuis 2009.