Displaying posts with tag: MySQL (reset)
7 Mars 2011 : Conférence gratuite sur l’optimisation MySQL

L’association des Utilisateurs de MySQL LeMug.fr et Openday vous invitent à rencontrer Morgan Tocker consultant  chez Percona Lundi 7 Mars 2011, à partir de 19h au café Dune à Paris Au programme Présentation de l’association LeMug.fr et OpenDay Présentation des ouvrages « Audit et optimisation MySQL 5 » et « MySQL 5 Administration et optimisation » par leurs auteurs [...]

Meeting avec Morgan Tocker de Percona

LeMug.fr prépare son revival le 7 mars au café Dune à Paris !

Morgan Tocker, consultant et formateur chez Percona, nous fait l’honneur d’une visite, au cours de laquelle il nous parlera bien évidemment de MySQL. Nous aurons l’occasion de reparler ce meeting dans les jours à venir, mais vous pouvez d’ores et déjà bloquer la date sur votre agenda si vous êtes dans les parages.

Stockage des IP : le mystère de l’adresse 127.255.255.255

Il est assez courant d’avoir besoin de stocker des adresses IP dans une base MySQL et malheureusement il n’est pas très courant que la manière de faire soit optimisée. Cet article vous propose de faire le point sur le sujet, ainsi que sur une erreur qu’on rencontre quand on fait presque bien les choses, mais pas tout à fait.

Comme il n’existe pas de type natif sous MySQL pour les adresses IP, la première idée consiste à se servir d’une chaîne de caractères. Une adresse IPv4 fait au maximum 15 caractères (aaa.bbb.ccc.ddd), on peut donc prendre un champ VARCHAR(15) qui utilisera au maximum 16 octets par valeur, soit 15 au maximum pour l’adresse plus 1 pour stocker la taille. Pour l’exemple, voici une table visites suivant cette idée :


CREATE TABLE visites (
  user_id int(11) NOT NULL DEFAULT '0',
  ip varchar(15) NOT NULL DEFAULT '',

[Lire plus]
Paramètre commentaire de SphinxClient::query

Je fait pas mal de tests sur sphinx pour le moment.

En lisant PHP: SphinxClient::query - Manual

[php]
public array SphinxClient::query ( string $query [, string $index = "*" [, string $comment = "" ]] )

Mon attention a été attirée par le 3ème paramètre. (supporté par sphinx depuis la Version 0.9.8 du 14 juillet 2008)

En fait ce paramètre accepte une chaine de caractère qui se retrouve dans le query.log

[php]
$result = $hSphinx->query('leMotQueJeCherche', '*', 'mon commentaire');

Ce paramètre existe aussi en SphinxSE mais ce n'est pas documenté,

Il suffit d'ajouter ';comment=mon test' dans la chaine query,

query='leMotQueJeCherche;comment=mon …
[Lire plus]
Un disque SSD comme buffer pour InnoDB

MySQL, la base de données open source la plus populaire, inspire toujours autant les développeurs. David, propose un patch qui permet de créer un buffer pool supplémentaire pour InnoDB, qui est stocké sur un disque SSD ou de la mémoire flash.

Cette fonctionnalité créée un thread qui en tache de fond récupère les pages de données virées du buffer pool pour les copier dans le buffer pool supplémentaire du SSD au lieu du disque classique. L’idée étant d’éviter les accès au disque classique ( beaucoup plus lents notamment lors d’accès aléatoires).

De plus selon ses tests, les résultats restent également bien meilleurs avec une configuration SSD et un seul buffer pool.

Sysbench OLTP benchmark

Server: Intel(R) …

[Lire plus]
WhitePaper : Comparatif InnoDB MyISAM

La société Oracle publie un livre blanc présentant une série de benchs comparant les performances en lecture/écriture et en lecture seule des moteurs de stockages InnoDB et MyISAM sur MySQL 5.5. Les résultats affichés indiquent des performances largement supérieures pour InnoDB sur des architectures multi-coeur alors que MyISAM reste à performance constante quel que soit [...]

Instrumentation et performance

Instrumenter son application correctement représente un pas important dans la recherche des performances optimales. De bons outils permettent également de gagner du temps, qui est toujours précis. Cet article va vous donner un exemple de la valeur ajoutée que peut procurer un bon outil : le simple fait d’obtenir un rapport précis sur un problème rencontré permet de résoudre en 5 minutes un gros problème de performance qui ne trouvait pas de solution depuis des semaines.

L’application en question dispose d’une table user permettant (surprise !!) de stocker les informations sur les utilisateurs. Cette table contient environ 30 millions de lignes et a l’allure suivante :


CREATE TABLE user (
  user_id int(11) NOT NULL AUTO_INCREMENT,
  login varchar(30) NOT NULL DEFAULT '',
  name varchar(50) NOT NULL DEFAULT '',
  col_a varchar(30) NOT …

[Lire plus]
Bench MariaDB vs MySQL

Avec les sorties de MySQL 5.5.8 et de MariaDB 5.2.4, l’écosystème SGBDR open source se retrouve donc avec 3 bases (n’oublions pas MySQL 5.1.53) en GA. J’ai eu envi de voir le résultat des améliorations apportées par les équipes  d‘Oracle sur la première version majeure post rachat (MySQL 5.5.8) et celles apportées par la communauté et les équipes de Monty program pour la version basée sur MySQL 5.1.53  (MariaDB 5.2.4).

De nombreuses optimisations ont eu lieu sur la version MySQL 5.5.8, ainsi que sur le moteur de stockage InnoDB. Idem pour MariaDB et la version InnoDB  de …

[Lire plus]
UPDATE et SELECT sur la même table

Utiliser MySQL suppose de vivre avec certaines de ses limitations. Voici comment se débrouiller avec l’une d’entre elles : comment exécuter un UPDATE ou un DELETE sur une table sur laquelle on exécute en même temps un SELECT ?

Ce genre de situation peut se produire lorsqu’on souhaite mettre à jour un champ d’une table avec des données agrégées provenant de la même table. Pas clair ? Alors voici un exemple simple :

CREATE TABLE items (
  item_id int NOT NULL AUTO_INCREMENT,
  purchase_date date DEFAULT NULL,
  total int NOT NULL,
  total_month int NOT NULL,
  PRIMARY KEY (item_id)
);

INSERT INTO items (purchase_date,total) VALUES ('2010-12-01',10),
('2010-12-05',5),
('2010-10-10',14),
('2010-11-20',9),

[Lire plus]
MySQL 5.5 est disponible

Oracle annonce la sortie de la toute nouvelle version de la base de données open source MySQL 5.5.8. Cette version est une G.A. ((Generally Available), en d’autre terme la version à utiliser en production.

Voici le communiqué en version originale:

MySQL 5.5 Now Generally Available

New Performance and Scalability Enhancements Highlight Oracle’s Continued Investment in MySQL

Redwood Shores, Calif. – December 15, 2010 News Facts

  • Underscoring its commitment to deliver new innovations to MySQL users, Oracle today announced the general availability of MySQL 5.5.
  • MySQL 5.5 delivers significant enhancements enabling users to improve the performance and scalability of web applications across multiple operating environments, including Windows, Linux, Oracle Solaris, and Mac OS X.
  • The MySQL 5.5 Community Edition, which is licensed under the GNU …
[Lire plus]