Différence entre MySQL 4 et MySQL 5

J?ai fais beaucoup de tests pour m?assurer qu’une base de donnée en production sur MySQL 4 allait avoir le même comportement sur MySQL 5. Voici donc ma conclusion et les recommandations en conséquence.

La première différence que j?ai trouvé concerne les strings qu?on insère dans un champ char/varchar. Si on insère une string qui possède des espaces au début ou à la fin, MySQL4 les trim automatiquement. Ce n?est pas le cas de MySQL5. Il faut donc être spécialement attentif à ce qu?on insère et trimer tout les valeurs avant (c’est ce qu’il faudrait toujours faire de toute façon). Supposons qu?il se glisse accidentellement 2 espaces dans un champs, et qu?il y a 2 000 000 d?enregistrements dans la table. Il y aura donc 3.81 Mo de données et 3.81 Mo d?index (si le champs est indexé) pour stocker des espaces inutiles. Ça peut sembler trivial mais 3.81 Mo d?index, c?est énorme.

Une autre différence concerne …

[Lire plus]
DBDesigner 4 : générer son MCD par reverse engineering

Disposer dun MCD (modèle conceptuel de données) lorsquon travaille sur une requête SQL impliquant différentes tables représente un gain de temps.
Il est en effet plus rapide de jeter un coup doeil sur un MCD afin de repérer quels sont les champs qui lient une table à une autre plutôt que denchaîner les DESC ma_table, puis repérer la clé primaire et les éventuelles clés étrangères, et rebolote sur la ou les tables de destination
La prochaine série darticles sur les index MySQL va nous amener à enchaîner quelques requêtes sur une des deux bases dexemple disponibles sur le site de MySQL : world et sakila, le prétexte est donc tout trouvé pour évoquer ici la solution que jai retenu pour obtenir le MCD de ces tables : DBDesigner 4.
Cet outil nest pas nouveau, son successeur officiel est même déjà connu, il sagit de MySQL Workbench. Celui-ci nétant pas encore disponible sous linux, nous utiliserons son ancêtre …

[Lire plus]
pager : retraitements des résultats MySQL

Le client en ligne de commande MySQL dispose d'un système pour appeler des scripts externes avant d'afficher les résultats. On peut donc automatiser des mises en forme personnalisées, ou simplement noter des informations tout en traitant des données.
Le plus simple est encore le pager less, qui évite les défilements infinis de données.

 
 
pager less
 
SHOW innodb STATUS\G
 


Baron Schwartz montre aussi comment calculer la durée d'attente d'un verrou ou bien comment l'utiliser avec Maatkit pour faire un affichage en arbre. Très pratique, vraiment.

DBDesigner 4 : générer son MCD par reverse engineering

Disposer d’un MCD (modèle conceptuel de données) lorsqu’on travaille sur une requête SQL impliquant différentes tables représente un gain de temps.
Il est en effet plus rapide de jeter un coup d’oeil sur un MCD afin de repérer quels sont les champs qui lient une table à une autre plutôt que d’enchaîner les “DESC ma_table”, puis repérer la clé primaire et les éventuelles clés étrangères, et rebolote sur la ou les tables de destination…

La prochaine série d’articles sur les index MySQL va nous amener à enchaîner quelques requêtes sur une des deux bases d’exemple disponibles sur le site de MySQL : world et sakila, le prétexte est donc tout trouvé pour évoquer ici la solution que j’ai retenu pour obtenir le MCD de ces tables : DBDesigner 4.

Cet outil n’est pas nouveau, son successeur officiel est même déjà …

[Lire plus]
Alertes sécurité des applications PHP et MySQL, édition 207


PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.



8 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Cache_Lite, Drupal, Gallery, Horde, Joomla, RoundCube Webmail, ming et vBulletin


[Lire plus]
Sortie de TPLN Php Template v2.9


H2Lsoft, Société de services en logiciel libre, annonce la sortie de son moteur de template PHP estampillé 2.9. De nombreuses nouveautés et améliorations ont été apportées à cette version, notamment:

  • Amélioration des performances 35% (utilisation AdoDB lite)
  • ShowRecords (gestion de la pagination automatique) supporte désormais tous les SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
  • 26 nouvelles méthodes
  • Corrections multiple de bugs
  • Compatibilité Php 4 et Php 5
    Rappelons que TPLN Template PHp est un projet Open source (GPL) crée en 2001, ayant comme particularités:
  • Simplicité d'apprentissage
  • Gestion de la plus part des SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
  • Gestion du cache (simple et dynamique)
  • Gestion automatique du contrôle des formulaires (à noter également le support …
[Lire plus]
TPLN Php Template v2.9

H2Lsoft, Société de services en logiciel libre, annonce la sortie de son moteur de template Php estampillé 2.9.
De nombreuses nouveautés et améliorations ont été apportées à cette version

- Amélioration des performances 35% (utilisation AdoDB lite)
- ShowRecords (gestion de la pagination automatique) supporte désormais tous les SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- 26 nouvelles méthodes
- Corrections multiple de bugs
- Compatibilité Php 4 et Php 5

Rappelons que TPLN Template PHp est un projet Open source (GPL) crée en fin 2001, ayant comme particularités:

- Simplicité d'apprentissage
- Gestion de la plus part des SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- Gestion du cache (simple et dynamique)
- Gestion automatique du contrôle des formulaires (à noter également le support des captcha)
- Plugin …

[Lire plus]
L'art de la jointure : join-FU

L'inénarrable Jay Pipes publie ses conférences sur le Join-Fu, l'art de maîtriser les jointures. Les deux conférences, données en Avril dernier à MySQL UC, sont toutes les deux très complètes, et pratiques. Jay suggère ne plus raisonner en boucle mais en ensembles, de réaliser des partitions verticales. C'est très long, mais vous y apprendrez sûrement comment améliorer vos requêtes SQL.

Performances MySQL en PHP

Mike Wilibanks liste différentes astuces pour accélérer les requêtes SQL quand on l'utilise avec PHP.


  • Connections à la demande
  • Requêtes en boucle
  • Sélections en fonction de besoins
  • Utilisez les bons types de données
  • Normalisation
  • Denormalization
  • Types de tables
  • Les règles simples


Pour les performances, il est trop facile de masquer les nombres de requêtes en PHP. C'est à dire que placer une requête dans une boucle foreach permet de s'épargner l'écriture de nombreuses requêtes, et cela masque beaucoup de travail pour MySQL dès que la boucle est importante. C'est probablement la pierre d'achoppement la plus fréquente lorsqu'on utilise PHP avec MySQL.

  •   …
[Lire plus]
Vidéo PHP et MySQL, édition 49

Voici les 5 dernières vidéos PHP et MySQL.


[Lire plus]