IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Optimisation d'une table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Par défaut Optimisation d'une table
    Bonjour à tous, voila je me pose une question.

    J'aimerai savoir si il existe une requete qui permette de mettre à jours une table comportant un id autoincrémenter.

    je m'explique
    j'ai 25 enregistrements dans la bdd, j'en suprime 10 a l'aide d'un script php, le prochain enregistrement que je vais insérer va avoir un id de 26 alors que sa serai bien qu'il est un id de 16.

    Lorsque j'etais à l'iut notre prof nous avais montré une manip directement en passant par l'interface de phpmyadmin, mais je ne sais plus ce que c'st cette manipe. Je pense qu'une requete sql doit exister pour faire sa, mais je ne trouve pas.

    Si quelqu'un à une réponse à cette question je veux bien.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Citation Envoyé par gregal
    ...
    je m'explique
    j'ai 25 enregistrements dans la bdd, j'en suprime 10 a l'aide d'un script php, le prochain enregistrement que je vais insérer va avoir un id de 26 alors que sa serai bien qu'il est un id de 16.
    ...
    Pourquoi ?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Par défaut
    ben étant donnée qu'il y a une suppression d'article dans un catalogue par exemple, on arrive vite si on fais une suppression massive de 1200 produits par exemple a des id vraiment gros. C'est pas tres important, mais j'aimerai savoir si il y a moyens de réecrire dans des id_autoincrémenter apres une suppression.

    POur mon cas, j'insère 1211 produit issu d'un fichier csv en php. je peux les supprimer
    a chaque fois que je fais mes tests j'insère, et je supprime, le truc c'est qu'a force de tester, j'ai des id qui ateigne 15000 alors qu'il y a juste 1211 produits.

    donc voila

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Un petit article qui parle des clefs en général :

    http://sqlpro.developpez.com/cours/clefs/

    Je suppose que ton identifiant auto est déclaré en INT, pour information, avant de "venir à bout" ce cet identifiant, il faudra que tu fasse quelques 13 insertions à la seconde pendant 10ans.

    Autre précision, tu es en phase de test, donc tes suppressions massives (qui te paraissent gâcher beaucoup d'espace) ne seront peut-être pas les même en prod où tu auras tes données réinitialisées.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Par défaut
    ok interessant tes données, mais pour répondre à ma question, il n'y a pas une requete de modification quoi permet d'optimiser les id et les faires repartirs a l'id mx+1 lors d'un prochain insert?

  6. #6
    Membre chevronné
    Inscrit en
    Avril 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 316
    Par défaut
    Bonjour,

    un champ auto incrément aura toujours le dernier numéro +1 même si tu supprime des lignes. tu peux utiliser un champ numérique et dans la requête tu fais un select isnull(max(monchamp), 0) + 1 as derniernumero ...

    A+

Discussions similaires

  1. [11g] Optimisation d'une table volumineuse
    Par dtateur dans le forum Administration
    Réponses: 14
    Dernier message: 19/01/2014, 12h33
  2. [10gR2] Optimisation d'une table contenant un historique
    Par Zidmann dans le forum Administration
    Réponses: 7
    Dernier message: 14/06/2013, 12h53
  3. Optimisation d'une Table / Requete
    Par silmortes dans le forum SQL
    Réponses: 13
    Dernier message: 13/08/2009, 15h31
  4. Optimisation d'une table
    Par jexl dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 15/12/2005, 13h22
  5. Optimisation d'une jointure entre 3 tables
    Par gavelin dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/12/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo