En fait ce n'est pas moi qui l'ai trouvé mais c'est Alex d' Hebeh.com qui vient de m'appeler pour me signaler le problème qui, sur des sites à fortes fréquentation, générait une latence importante sur le serveur mysql , pompait un max de ressources, bref foutait en l'air la stabilité du serveur mysql ( et rendait le site très lent ).
J'ai donc regardé dans un premier temps avec lui puisqu'il avait plusieurs problèmes, un avec plusieurs smf, un autre avec plusieurs phpbb3 et le dernier avec des maximus, pour les deux premiers il s'est débrouillé puisque c'était des index manquants pour les deux forums cités qui génèrent un ralentissement notable sur des gros forums, mais pour le troisième comme il manquait une table ça lui était impossible de résoudre le binz
bon donc pour résumer, TOUS les utilisateurs depuis la version 2008 doivent être concernés par ceci, mais je demande à tout le monde de contrôler ceci dans tous les cas
de mon coté je me suis engagé à livrer le correctif, si vous ne l'appliquez pas et que vous vous retrouvez avec un compte fermé, ne venez pas vous plaindre ( j'aurai fait mon job )
Donc pour résumer ...
Premier contrôle important
Vérifier si la table max_counter existe
Si elle existe, est ce qu'elle contient des informations ?
Si oui tout va bien, si non tout va mal
Si non, ouvrez phpmyadmin puis supprimez la table existante ( vide ), et restaurez celle ci en faisant très attention à votre préfixe !
- Code: Tout sélectionner
CREATE TABLE IF NOT EXISTS `max_counter` (
`type` varchar(80) NOT NULL default '',
`var` varchar(80) NOT NULL default '',
`count` int(10) unsigned NOT NULL default '0',
KEY `type` (`type`),
KEY `var` (`var`)
) ;
INSERT INTO `max_counter` (`type`, `var`, `count`) VALUES
('total', 'hits', 0),
('browser', 'WebTV', 0),
('browser', 'Lynx', 0),
('browser', 'MSIE', 0),
('browser', 'Opera', 0),
('browser', 'Konqueror', 0),
('browser', 'Netscape', 0),
('browser', 'FireFox', 0),
('browser', 'Bot', 0),
('browser', 'Other', 0),
('os', 'Windows', 0),
('os', 'Linux', 0),
('os', 'Mac', 0),
('os', 'FreeBSD', 0),
('os', 'SunOS', 0),
('os', 'IRIX', 0),
('os', 'BeOS', 0),
('os', 'OS/2', 0),
('os', 'AIX', 0),
('os', 'Other', 0);
Seconde étape pour tout le monde
là c'est très simple et ça concerne tout le monde, puisque si c'est déjà fait c'est pas grave, si ça n'est pas fait, ça le sera
ouvrez phpmyadmin, puis onglet SQL, copiez / collez le code suivant puis validez en faisant très attention à votre préfixe !
- Code: Tout sélectionner
ALTER TABLE `max_session` ADD INDEX ( `uname` );
OPTIMIZE TABLE `max_session`;
ALTER TABLE `max_stats_date` ADD INDEX ( `year` );
ALTER TABLE `max_stats_date` ADD INDEX ( `month` );
ALTER TABLE `max_stats_date` ADD INDEX ( `date` );
OPTIMIZE TABLE `max_stats_date`;
ALTER TABLE `max_stats_hour` ADD INDEX ( `year` );
ALTER TABLE `max_stats_hour` ADD INDEX ( `month` );
ALTER TABLE `max_stats_hour` ADD INDEX ( `date` );
ALTER TABLE `max_stats_hour` ADD INDEX ( `hour` );
OPTIMIZE TABLE `max_stats_hour`;
ALTER TABLE `max_stats_month` ADD INDEX ( `year` );
ALTER TABLE `max_stats_month` ADD INDEX ( `month` );
OPTIMIZE TABLE `max_stats_month`;
ALTER TABLE `max_stats_year` ADD INDEX ( `year` );
OPTIMIZE TABLE `max_stats_year`;
Les packs maximus 2010 viennent d'être mis à jour en prenant compte de ces deux points






News