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 [...]
« Précédent 10 Nouvelles entrées | Suivant 10 Entrées plus anciennes »
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.
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 '',
…
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]
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]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 [...]
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 …
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]
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),
…
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 …
« Précédent 10 Nouvelles entrées | Suivant 10 Entrées plus anciennes »