Displaying posts with tag: MySQL (reset)
Percona Live MySQL Conference in London October 2011

Les 24 et 25 octobre 2011 se déroulera le « Percona Live MySQL Conference » à Londres, à l’America Square Conference Centre at 1 America Square 17 Crosswall London EC3N 2LB.

Les meilleurs gourous MySQL seront présent comme:

  • Peter Zaitsev, Baron Schwartz: Percona
  • Domas Mituzas: Facebook
  • Yoshinori Matsunobu: DeNA

Toutes les informations sur le site de Percona:

 

Mon agenda perso, devrait être proche de ça:

Lundi 24 octobre 20110 …

[Lire plus]
Discount code pour Percona Live London

Percona Live est une série de conférences 100% techniques autour de MySQL, organisées par Percona. La prochaine conférence aura lieu à Londres les 24 et 25 octobre et pour tous ceux qui souhaiteraient y assister, dbnewz vous propose un tarif réduit !

Voici le code magique qui vous donnera droit à une réduction de 40£ : come-c-talk, que vous pourrez saisir en vous enregistrant.

Pour plus d’informations sur Percona Live, vous pouvez aller voir le site, et surtout le programme.
Enfin, vous pouvez vous inscrire au groupe LinkedIn créé pour l’occasion par notre ami …

[Lire plus]
10/11 : Une journée de conférences dédiée aux chefs de projet et DSI sur le CMS Drupal

Avec la présence exceptionnelle du Figaro.fr, Mediapart, RadioFrance et France Télévision Jeudi 10 novembre 2011 à Paris Le forum Drupagora 2011 aura lieu à Paris le 10 novembre 2011 et est destiné en priorité à un public fonctionnel utilisant Drupal : chef de projet, directeur informatique. Pour l’édition 2011, les thèmes particulièrement mis en lumière [...]

MySQL et ses messages d’erreur

Je suis en généralement plutôt content de MySQL : c’est simple et stable, ça fonctionne bien. Mais il reste encore du travail pour que les messages d’erreur soient explicites. Petit résumé d’une frayeur causée par un message d’erreur approximatif.

Une de mes tables a une tendance marquée à la fragmentation, ce qui a pour conséquence de faire gonfler artificiellement sa taille et de faire baisser les performances de certaines requêtes. Je dois donc de temps à autre la défragmenter. Pas de problème : je commence par regarder la taille sur le disque du fichier .ibd (il s’agit d’une table InnoDB sur un serveur pour lequel innodb_file_per_table est activé). Quand la table est défragmentée, elle fait environ 8 Go :

# cd /data/mysql/main_revshare
# du -sh bris_statistic_video.ibd
11G bris_statistic_video.ibd

Pas de doute, une séance de défragmentation …

[Lire plus]
Méthodes de suppression des index inutiles

Les vacances étant terminées, nous allons boucler notre tour de vue des index inutiles en voyant quels outils vont nous aider à découvrir les index qui peuvent être supprimés. Le dernier article présentait en effet des indications qui fonctionnent généralement bien mais qui ont l’inconvénient de demander beaucoup de travail manuel et de laisser de côté tout un pan d’index qui peuvent être inutiles : ceux qui ne sont pas en doublon ni redondants, qui n’ont pas une cardinalité faible mais qui ne sont tout simplement pas utilisés par l’application.

Idée générale

Si vous avez bien lu l’article précédent, vous avez probablement remarqué que la principale difficulté est qu’il n’existe quasiment jamais de règle absolue permettant de savoir à coup sûr qu’un index est inutile (exception notable : les index en doublon repérés par mk-duplicate-key-checker et qui peuvent être supprimés dans 99% …

[Lire plus]
Duplicate key causé par un SELECT

Parmi les erreurs courantes en MySQL, ont trouve la fameuse ERROR 1062 (23000): Duplicate entry ’2984′ for key ‘PRIMARY’ causée par la tentative d’insertion d’une données, déjà présente, dans un colonne ayant une contrainte d’unicité.

Dans la même famille il y a aussi l’erreur 1022…

Une banale requête de lecture avec un GROUP BY:

mysql> SELECT DISTINCT(name), COUNT(name) FROM membre WHERE name <>  » GROUP BY name ERROR 1022 (23000): Can’t write; duplicate key in table ‘/tmp/#sql_29lm_0′  

C’est assez surprenant de trouver une telle erreur sur une requête aussi triviale !

En regardant le plan d’exécution, on remarque que outre le fait qu’ un index est plus que recommandé, MySQL créé une table temporaire (/tmp/#sql_29lm_0) et c’est en insérant les données dans cette dernière que le « duplicate key » se …

[Lire plus]
Numéro spécial MySQL dans phpsolutions

Le magazine phpsolutions propose ce mois-ci, un numéro spécial « Utilisez PHP avec MySQL »

Au sommaire:

  • Introduction à la sécurité et à la gestion des utilisateurs avec MySQL par Olivier Dasini
  • Introduction à PHP/MySQL et l’ORM Doctrine par Julien Tailleu
  • Les moteurs de tables MyISAM et InnoDB depuis MySQL 5.5 par Jean-Baptiste Monin
  • Programmation d’événements par Christian Soutou
  • MySQL, déclencheurs, fonctions et procédures stockée par Pascal Cescato
  • Mise en place de triggers sous PHPMyAdmin par David Peronne

Il est disponible depuis leur site : …

[Lire plus]
Suffix -log dans la version du serveur

La réponse à une question existentielle qui m’a occupée une petite heure…

Que représente le suffix dans le nom de version de certaines instances de MySQL ?

Un exemple pour être plus clair:

# mysql -h serveur1 -e"SHOW GLOBAL VARIABLES LIKE 'version';"
Enter password:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| version       | 5.5.8 |
+---------------+-------+

 

# mysql -h serveur2 -e"SHOW GLOBAL VARIABLES LIKE 'version';"
Enter password:
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| version       | 5.5.8-log |
+---------------+-----------+

 

En fait c’est un moyen de donner des informations sur la façon dont le binaire a été compilé ou configuré.

-log  indique qu’au moins l’un des journaux (general log, slow query log ou …

[Lire plus]
Index candidats à la suppression

Après avoir constaté dans les articles précédents que les index inutiles causent des baisses de performances non négligeables, nous allons voir dans cet article qu’il n’est pas aussi simple qu’il y paraît de déterminer si un index est utile ou non, même si dans certains cas la réponse semble évidente.

A première vue, trois catégories d’index sont bien placés pour être qualifiés d’inutiles : les index en doublon, les index redondants et les index à faible cardinalité. Regardons chaque catégorie en détail.

Index en doublon

Les index en doublon sont simplement ceux qui sont définis plusieurs fois. Un exemple simple pour commencer :
CREATE TABLE t (
  id int(11) DEFAULT NULL,
  KEY a (id),
  KEY b (id)
);

Notons que MySQL n’empêche en aucun cas ce genre de définition erronée.

Un autre …

[Lire plus]
Group by avec Sphinx. via SphinxSe

Cette semaine j'ai réussi à faire un truc avec sphinx que je n'ai pas spécialement trouvé bien documenté donc je le raconte ici.

Quand on utilise une table mysql avec le plugin sphinxSE, on doit obligatoirement commencer par les colonnes

  • id
  • weight
  • query
  • group_id
[mysql]
CREATE TABLE t1
(
    id          INTEGER UNSIGNED NOT NULL,
    weight      INTEGER NOT NULL,
    query       VARCHAR(3072) NOT NULL,
    group_id    INTEGER,
    INDEX(query)
) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/test";

mais on peut lui ajouter des colonnes

on a les colonnes qui représentent les attributs scalaires mais aussi des colonnes "virtuelles"

  • _sph_groupby,
  • _sph_count
  • _sph_distinct

c'est à dire

[mysql]
CREATE TABLE t1
(
    id          INTEGER UNSIGNED NOT NULL,
    weight      INTEGER NOT …
[Lire plus]