GNT sans publicité, site mobile, fonctionnalitées exclusives...

[MYSQL] inquiétude

Le
jacques.trepp
bonjour,

Soit une table CMD_USI avec un identifiant autoincrément. Un site A
crée des
commandes, les envoie au site B, qui les intègre, fabrique et livre le
site
A . Le site A facture le client, et efface la commande.
Le site B est sous linux en 4.1.7
le site A est sous XP en 4.1.7
[INQUIETUDE]
Si le service MySql est arrêté et redémarré, ou que la machine XP est
redémarrée, l'auto-incrément est ré-initialisé !
je teste sur ma table de démo, qui contient 21 records. Je facture
toutes
ces commandes. La table est vide.
J'ajoute une commande, l'identifiant passe à 22 (normal).
Je facture, donc je vide la table.
J'arrête le service mysql, je le redémarre, j'ajoute une commande :
l'identifiant est à 1.
[\INQUIETUDE]

les tables sont en InnoDB. Est-ce normal de réinitialiser l'auto
incrément
lorsqu'une table est vide ?

--
Jacques Trepp
Albygest
Lire les 10 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #13904261
Bonjour Jacques,
jacques.trepp
bonjour,

Soit une table CMD_USI avec un identifiant autoincrément. Un site A
crée des
commandes, les envoie au site B, qui les intègre, fabrique et livre le
site
A . Le site A facture le client, et efface la commande.
Le site B est sous linux en 4.1.7
le site A est sous XP en 4.1.7
[INQUIETUDE]
Si le service MySql est arrêté et redémarré, ou que la machine XP est
redémarrée, l'auto-incrément est ré-initialisé !
je teste sur ma table de démo, qui contient 21 records. Je facture
toutes
ces commandes. La table est vide.
J'ajoute une commande, l'identifiant passe à 22 (normal).
Je facture, donc je vide la table.
J'arrête le service mysql, je le redémarre, j'ajoute une commande :
l'identifiant est à 1.
[INQUIETUDE]

les tables sont en InnoDB. Est-ce normal de réinitialiser l'auto
incrément
lorsqu'une table est vide ?



Normalement non, mais fait attention, celon la méthode que tu utilises
pour vider ta table effectivement tu reparts de 0. Fait une recherche
dans la doc celà est indiquée. Le problème sur lea anciennes versions
de mysql que maintenant tu peux l'indiquer (pas sure, je confonds peut être
avec une autre base...)


--
Jacques Trepp
Albygest




--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Romain PETIT
Le #13904251
jacques.trepp avait prétendu :
bonjour,


[...]

les tables sont en InnoDB. Est-ce normal de réinitialiser l'auto incrément
lorsqu'une table est vide ?



Oui, c'est normal
http://dev.mysql.com/doc/mysql/fr/i...olumn.html
"Le compteur est stocké uniquement en mémoire, et non pas sur le
disque."

http://dev.mysql.com/doc/mysql/fr/e...ement.html
Pas pour les tables MyISAM

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Daniel
Le #13904241
Daniel
Bon, effectivement j'ai dit pas mal de connerie ;-(.
Je dois avoir un petir problème de transaction en ce momemnt ;-)

La réponse de Romain est correcte, parcontre je me demande avec quelle
base je confonds???


--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
jacques.trepp
Le #13904151
Romain PETIT a émis l'idée suivante :
jacques.trepp avait prétendu :
bonjour,


[...]

les tables sont en InnoDB. Est-ce normal de réinitialiser l'auto incrément
lorsqu'une table est vide ?



Oui, c'est normal
http://dev.mysql.com/doc/mysql/fr/i...olumn.html
"Le compteur est stocké uniquement en mémoire, et non pas sur le disque."

http://dev.mysql.com/doc/mysql/fr/e...ement.html
Pas pour les tables MyISAM



snif :'(

ça, c'est pas cool du tout. Moi qui pensait que innodb était la
panacée, je suis très surpris de ce comportement.
c'est vrai que chez nous, le serveur n'est jamais arrêté (quoique, si
maintenance, si), donc je n'y ai pas pris garde.
Bon, pour le coup des commandes, ce n'est pas grave. Simplement, il
faut que je vide les commandes sur le serveur après traitement, pour
pouvoir accepter les nouvelles commandes qui arriveront avec le même
id_auto.
je n'en reviens toujours pas. Même HF ne fait pas ça :-?

merci pour tes précisions.

Du coup, ça ne justifie plus le sur-coût du moteur innoDB, par rapport
aux tables Isam.
Le jour où les tables Isam supporteront les transactions, ça coutera
moins cher.

--
Jacques Trepp
Albygest
Roumegou Eric
Le #13904131
Après mure réflexion, jacques.trepp a écrit :
Romain PETIT a émis l'idée suivante :
jacques.trepp avait prétendu :
bonjour,


[...]

les tables sont en InnoDB. Est-ce normal de réinitialiser l'auto incrément
lorsqu'une table est vide ?



Oui, c'est normal
http://dev.mysql.com/doc/mysql/fr/i...olumn.html
"Le compteur est stocké uniquement en mémoire, et non pas sur le disque."

http://dev.mysql.com/doc/mysql/fr/e...ement.html
Pas pour les tables MyISAM



snif :'(

ça, c'est pas cool du tout. Moi qui pensait que innodb était la panacée, je
suis très surpris de ce comportement.
c'est vrai que chez nous, le serveur n'est jamais arrêté (quoique, si
maintenance, si), donc je n'y ai pas pris garde.
Bon, pour le coup des commandes, ce n'est pas grave. Simplement, il faut que
je vide les commandes sur le serveur après traitement, pour pouvoir accepter
les nouvelles commandes qui arriveront avec le même id_auto.
je n'en reviens toujours pas. Même HF ne fait pas ça :-?



Ne crois tu pas qu'un compteur "géré à l'os" serait préférable dans ton
cas ?


merci pour tes précisions.

Du coup, ça ne justifie plus le sur-coût du moteur innoDB, par rapport aux
tables Isam.
Le jour où les tables Isam supporteront les transactions, ça coutera moins
cher.



Une des raisons aussi pour laquelle j'utilise moins Innodb au profit de
myISAM est que Innodb ne supporte pas les index full text (ô combien
pratique !)

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Publicité
Suivre les réponses
Poster une réponse
Anonyme