Remise à zéro autoindex mysql
15 messages
• Page 1 sur 1
- poupilou
- WRInaute discret

- Messages: 237
- Inscription: 9 Fév 2004
Remise à zéro autoindex mysql
Bonjour, j'essaie la requête suivante ALTER TABLE `ma_table` AUTO_INCREMENT=0 mais ça ne ré-initialise pas le compteur de l'AUTO_INCREMENT, si j'ai supprimé des entrées dans ma table il y a donc des "trous" dans la numéroration et j'aimerai les combler, je pensais qu'avec la requête suivante ALTER TABLE `ma_table` AUTO_INCREMENT=0 ça fonctionerait, mais ç'est pas le cas ! Savez-vous comment faire ? Merci pour vos réponses.
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: Remise à zéro autoindex mysql
+1 avec jcaron. Et j'ai du mal à imaginer l'intérêt que cela peut avoir de combler ces fameux "trous" vu que cela n'entame en rien les performances.
- poupilou
- WRInaute discret

- Messages: 237
- Inscription: 9 Fév 2004
Re: Remise à zéro autoindex mysql
Merci pour vos réponses.
Comme je met à jour ma table toutes les semaines et qu'il peut y avoir parfois des milliers d'articles supprimés et donc des milliers qui viennent s'ajouter, imaginez dans 5 ans le compteur de l'AUTO_INCREMENT, il sera à 12569566544566, alors que si chaque semaine les nouveaux produits viennent combler les "trous" ce sera déjà plus acceptable, non ?
Comme je met à jour ma table toutes les semaines et qu'il peut y avoir parfois des milliers d'articles supprimés et donc des milliers qui viennent s'ajouter, imaginez dans 5 ans le compteur de l'AUTO_INCREMENT, il sera à 12569566544566, alors que si chaque semaine les nouveaux produits viennent combler les "trous" ce sera déjà plus acceptable, non ?
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Remise à zéro autoindex mysql
10 000 articles par semaine * 52 semaines * 100 ans = 52 millions. Si tu utilises bien des "int" (et pas des tinyint / smallint / mediumint), ça rentre largement dans un entier 32 bits (tu peux aller jusqu'à 2 milliards suivant les cas, 4 si ton champ est en unsigned int). Si jamais ça ne te paraît pas suffisant, tu peux passer sur un unsigned bigint et là la limite est de 16 milliards de milliards.
Où est le problème?
Jacques.
Où est le problème?
Jacques.
- poupilou
- WRInaute discret

- Messages: 237
- Inscription: 9 Fév 2004
Re: Remise à zéro autoindex mysql
Où est le problème?
Le souci c'est que dans l'url de mes pages descriptives de mes produits se trouvent le numéro de l'AUTO_INCREMENT (http://www.mon-site.com/produit-112.html) et si ces numéros changent toutes les semaines c'est pas bon pour le référencement de ces pages via GG, d'ou mon idée de garder si possible les mêmes numéros et/ou de les ré-utiliser.
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: Remise à zéro autoindex mysql
Tu peux aussi t'affranchir complètement d'utiliser ces id dans l'url (en créant un champ spécifique qui contiendrait l'url du produit, qui serait unique, et qui te servirait de clé pour retrouver les infos du produits). Ca te permettrait aussi du coup de raccourcir tes url.
- poupilou
- WRInaute discret

- Messages: 237
- Inscription: 9 Fév 2004
Re: Remise à zéro autoindex mysql
Oui ça aurait pu être une solution mais ma table contient plus de 100 000 lignes et 25 colonnes, imagine le nombre de données à traiter, mes requêtes son assez lentes, il est difficile de créer une nouvelle colonne et de rajouter encore du contenu.
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: Remise à zéro autoindex mysql
Pas forcément, logiquement tes titres de produit son uniques, donc tu peux tout a fait je penser generer ton url a partir de ceux-ci après le traitement qui va bien.
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: Remise à zéro autoindex mysql
Hé bein tu génères le contenu de ce champ url à partir du titre du produit, après avoir retraité ce titre de manière à supprimer tous les caractères qui n'ont pas leur place dans une url (accents, ponctuations, etc.) et les espaces par des -.
- poupilou
- WRInaute discret

- Messages: 237
- Inscription: 9 Fév 2004
Re: Remise à zéro autoindex mysql
ce n'est pas possible car je n'ai pas de titres distinct pour mes produits, le titre est créé par une association de plusieurs de mes champs mais il y a assez souvent des titres identiques, donc cela ferait des doublons. La seule solution reste un numéro unique présent dans le titre qui permette de retrouver l'id du produit dans la table.
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: Remise à zéro autoindex mysql
Si vraiment ce que tu cherches à faire c'est "combler" les trous, lors de la création d'un nouveau contenu, il va te falloir faire une recherche dans la base de donnée (triée par id croissant) pour récupérer le premier emplacement "vide", c'est à dire l'identifiant x qui n'est pas suivi par un identifiant x+1.
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Remise à zéro autoindex mysql
poupilou a écrit:Le souci c'est que dans l'url de mes pages descriptives de mes produits se trouvent le numéro de l'AUTO_INCREMENT (http://www.mon-site.com/produit-112.html) et si ces numéros changent toutes les semaines c'est pas bon pour le référencement de ces pages via GG, d'ou mon idée de garder si possible les mêmes numéros et/ou de les ré-utiliser.
Ca n'a pas grand chose à voir tout ça... Si c'est le même produit qui change, il faut garder son id. Tu fais ça au moment où tu traites tes mises à jour: tu cherches le produit correspondant (tu dois bien avoir un critère qui te permet de le reconnaître, non?), s'il existe tu fais un update, sinon un insert. Dans les deux cas tu as un champ "dernier update", et si la date du dernier update est supérieure à la date de début du traitement, hop, tu effaces.
C'est un flux produit, non?
Jacques.
- poupilou
- WRInaute discret

- Messages: 237
- Inscription: 9 Fév 2004
Re: Remise à zéro autoindex mysql
UsagiYojimbo le souci avec un champs en AUTO_INCREMENT c'est que ce n'est pas moi qui décide quel chiffre je met dans ce champs, si j'ai un trou pour le numéro "122" il restera manquant, il n'y a pas de moyen de recréer un n° 122 tant qu'il y a l'AUTO_INCREMENT sur ce champs.
Merci pour ta réponse Jacques. Je vais suivre tes indications et voir comment je peux faire.
Merci pour ta réponse Jacques. Je vais suivre tes indications et voir comment je peux faire.
15 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Remise à 0 de iptables automatique?
- heure de remise a zero Adsense
- Remise en question du calcul du PR
- Remise à zéro du nom de domaine.
- Les backlinks : remise en question
- remise a niveau du site web
- Efficacité de l'url rewite remise en cause ?
- Plus de remise agence sur Adwords ?
- Remise à zéro compteur journalier
- Alexa : fréquence de remise à jour
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Le WRInaute du moment - 24-10-2006
- Une théorie sur cet effet sandbox - 15-01-2005
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
