Effacement avec jointure et limite

MySQL permet de faire des effacements multi-tables : un effacement à jointure, si vous voulez. Mais cette fonctionnalité si pratique ne supporte pas la clause LIMIT, que JOIN et DELETE supportent séparément. Justin Swanhart vous propose alors une solution de remplacement, basée sur des variables de session.

Les SSD (Solid-State Drive) : une technologie d?avenir pour nos SGBD ?

Modifier une petite ligne dans le fichier de configuration de son SGBD et obtenir les performances souhaitées, c’est possible… si vous êtes chanceux. La performance globale d’un SGBD repose en effet sur un ensemble de briques, logicielles ou matérielles, qui une fois empilées correctement forment un ensemble cohérent (et performant) : la seule étape du fichier de configuration ne suffit pas.

Dans un de ses récents billets, Matt Yonkovit a déclenché une série de réflexions intéressantes à propos de l’impact des performances des disques durs sur l’ensemble du SGBD.

Selon lui, les problèmes de performance au sein d’un SGBD sont la plupart du temps relatifs aux disques durs et notamment au nombre d’I/O (Entrées/Sorties) qu’ils …

[Lire plus]
http://www.dbnewz.com/2008/05/13/les-ssd-solid-state-drive-une-technologie-davenir-pour-nos-sgbd/

"Outre ces mécanismes [NDJ : indexation et caches], la technologie SSD pourrait bien à lavenir changer la donne.
Les SSD, littéralement Solid-State Drives (ou Disk par abus de langage), ne sont pas des disques mais des unités de stockage constituées de mémoire flash (persistante).
Au vu des benchmarks les concernant, il ya fort à parier que les SSD seront de plus en plus dactualité dans les mois qui viennent."

[Lire plus]
MySQL et les vues matérialisées

Les vues matérialisées sont des vues SQL, qui sont stockées physiquement par la base. Les vues actuelles sont des vues dynamiques, c'est à dire qu'elles se basent sur une exécution de la requête sous-jacente à chaque utilisation. Si les données des tables ne changent pas trop souvent, avoir un système de cache donne une belle accélération.
Les vues matérialisées sont disponibles chez Oracle et DB2. Pour MySQL, rien de standard, mais il doit être possible de s'en sortir avec des tables en mémoire, et le programmateur d'événements.

Les SSD (Solid-State Drive) : une technologie d’avenir pour nos SGBD ?

"Outre ces mécanismes [NDJ : indexation et caches], la technologie SSD pourrait bien à lavenir changer la donne.
Les SSD, littéralement Solid-State Drives (ou Disk par abus de langage), ne sont pas des disques mais des unités de stockage constituées de mémoire flash (persistante).
Au vu des benchmarks les concernant, il ya fort à parier que les SSD seront de plus en plus dactualité dans les mois qui viennent."

Procédures stockées : langage externe, mais pas encore PHP

Lorsque MySQL envisageait d'avoir des procédures stockées, la rumeur circulait que PHP pourrait être le langage adopté. Ce ne fut pas le cas, mais l'idée de pouvoir utiliser n'importe quel langage de programmation comme procédure stockée est restée. Résultat : c'est fait.
Il existe un plug-in MySQL udfng qui accepte du code en C, Java, LegacyUDF (vieilles UDF), Perl et XML-RPC. Eric Herman et Antony Curtis cherchent d'ailleurs les prochaines plates-formes à ajouter. PHP! PHP!

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


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.



3 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Joomla, e107 et ming


[Lire plus]
Myriades de proxy pour MySQL

Brian Aker a cessé de compter le nombre de proxy pour MySQL qu'il a repéré : il y a SQL Relay, qui remonte à quelques années, MySQL Proxy, de Jan Kneschke. En fait, il y en a encore 4 autres différents. Lequel est le meilleur, se demande Brian?

ERROR 1030: Got error -1 from storage engine

J’ai été pris avec un problème qui m’a pris un petit temps (30 minutes) à trouver aujourd’hui. Le message retourné par le serveur n’aidait vraiment pas: ERROR 1030: Got error -1 from storage engine

Pour faire une histoire courte, c’étais un vieu serveur sur lequel j’avais eu des problèmes de corruption. Pour bien faire, j’avais ajouté l’option innodb_force_recovery=4 dans le my.cnf dans l’espoire que ca corrige le tout, chose qui ne s’est pas produite.

J’ai donc décidé de tout supprimer (tables, databases, fichiers temporaires, etc) et de remettre à neuf avec un dump.sql créé avec mysqldump. Le recovery allait bien jusqu’à ce que le dump tente d’insérer dans une table InnoDB: ERROR 1030: Got error -1 from storage engine.

Pas évident au premier coup d’oeil. J’ai donc googlé jusqu’à temps que je trouve un post d’un gars qui avait eu le même problème. Il …

[Lire plus]
ORDER BY RAND() Optimisation

Il n?existe pas d?autres moyen magique de sélectionner des enregistrements aléatoirement. Il y a seulement ORDER BY RAND(). Cependant, ORDER BY RAND() est un performance killer lorsque la table possède plusieurs milliés d?enregistrements.Prenons le cas où on veut afficher 10 enregistrements aléatoirement et que cette requête va être exécutée excessivement souvent par l?application. La table utilisée pour les tests est une table avec 500000 enregistrements.

Pour commencer, voyons voir comment MySQL réagis avec une requête qui ordonne sur la clef primaire avec une limite de 10 enregistrements:

  1. SELECT SQL_NO_CACHE *
  2. FROM tableA
  3. ORDER BY id LIMIT 10;
  4. // 0.00 sec

On s?y attendait, c?est tellement rapide que le client Mysql n?arrive pas à être assez précis pour dire le temps que ca a pris. Maintenant, une requête qui ordonne par RAND() avec une limite de 10 …

[Lire plus]