Bonjour,
J'ai installé chez plusieurs personnes un serveur MySQL pour gérer une base de données.
Cette dernière contient une table comme suit :
mysql> show create table my_history;
+------------+---------------------------------------------------------+
| Table | Create Table |
+------------+---------------------------------------------------------+
| my_history | CREATE TABLE `my_history` ( |
`ID` bigint(20) NOT NULL auto_increment, |
`OPERATION` text NOT NULL, |
PRIMARY KEY (`ID`) |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+------------+---------------------------------------------------------+
1 row in set (0.02 sec) |
Actuellement, chez ces personnes, cette table contient de 300000 à 600000 enregistrements environ.
Le count(*) et le max(id) renvoient la même valeur chez chaque personne.
Jamais aucun des enregistrements n'est supprimé; on ne fait que rajouter de nouveau enregistrements ou sélectionner les derniers créés.
Chaque base est installé en réseau intranet et plusieurs ordinateurs réalisent des sélections/insertions sur cette table (chaque poste fait une intervalle en 1/30e de seconde et 1 seconde entre chaque série de requêtes, et une série compte au plus 10 requêtes).
Mes requêtes d'insertions sont toutes de la forme "INSERT INTO `my_history` (`OPERATION`) VALUES ('xxxxxxxxxxxxx...')"
PROBLEME : régulièrement (tous les 2 semaines à tous les mois), et chez chaque personne, je suis obligé d'appeler "REPAIR TABLE `my_history`" pour que le serveur remette la valeur de l'auto-incrementation à un niveau suffisant (max(id) - valeur de l'auto-incrément = 30 environs).
Savez-vous d'où ce problème peut venir et quelle solution je peut y apporter ?
Merci bien par avance !!