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

Administration MySQL Discussion :

[Optimisation] Tables avec champs textes


Sujet :

Administration MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [Optimisation] Tables avec champs textes
    Bonjour,
    Je n'avais pas de pb de perf jusqu'à présent, mais c'est la première fois que 'jai affaire à des tables de 100,000 enregsitrements et ça commence à ramer.

    J'ai des tables de forum par exemple qui mélange des champ integer avec des champ textes.

    Pensez vous que l'on puisse gagner beaucoup en séparant cette table en 2 tables, l'une contenant les donnée integer, booléen et autres types de base et l'autre contenant les textes, qui n'est utilisée que pour l'affichage final du texte ?

    Ca demande un changement de conception de la base et pas mal d'effort, si j'avais des retours d'expérience sur ce sujet pour savoir si on gagne beaucoup ça me motiverai à franchir ce pas.

    Merci!

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Ce serait bien d'avoir la description de cette table.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre actif
    Homme Profil pro
    Programmeur Delphi
    Inscrit en
    Octobre 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Programmeur Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 183
    Points : 227
    Points
    227
    Par défaut
    Il faudrait p-t prévoir la création d'index sur les tables.
    Personne ne me contredira en disant que les index font gagner un temps énorme lors des recherches sur la table

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Voici la table, elle contient 84000 enregistrements. Ce que j'envisageais donc est de sortir "comment", "message", "title" et "adip" dans une table différente avec correspondance de l'id unique.

    Je n'ai pas oublié les index.
    La plupart des requête utilise "ORDER BY lastedition DESC" et c'est ça qui pombe les résultats. Quand Mysql utilise l'index "lastedition" pour réordonner, il n'utilise pas l'index pour résoudre la clause WHERE et inversement. Il est possible d'optimsier ça en mettant es index su plusieurs colones mais ma clause where peut prendre des valeurs trés diverses ce qui ne me permet pas de faire ça.

    Donc la seule solution que je vois pour optimiser (peut être gagner 50% du temps?) c'est déjà de séparer le texte des champs à longueur fixe (entiers, etc...).

    Vote opinion ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      id int(10)   UNSIGNED No  auto_increment               
      public tinyint(3)   UNSIGNED No 0                
      expertonly tinyint(4)   No 0                
      message text latin1_swedish_ci  No                 
      state tinyint(4)   No 0                
      nbedition smallint(5)   UNSIGNED No 0                
      lasteditorid int(11)   No 0                
      comment text latin1_swedish_ci  No                 
      title text latin1_swedish_ci  No                 
      lastedition datetime   No 0000-00-00 00:00:00
      source smallint(5)   UNSIGNED No 0                
      target smallint(5)   UNSIGNED No 0                
      askerid int(11)   No 0                
      userid int(11)   No 0                
      adip text latin1_swedish_ci  No
    Et les index :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PRIMARY  PRIMARY  83357       id  
    public  INDEX  2       public  
    askerid  INDEX  20839       askerid  
    userid  INDEX  20839       userid 
    target  INDEX  64       target
    lastedition  INDEX  83357       lastedition  
    expertonly  INDEX  3       expertonly

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    A priori, je ne vois pas trop en quoi rajouter une jointure accélèrerait les choses, mais c'est difficile de te répondre sans connaître ta requête.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

Discussions similaires

  1. [AC-2007] Sous formulaire/actualiser Liste et Table avec champs texte
    Par Stobbart dans le forum IHM
    Réponses: 4
    Dernier message: 01/08/2010, 14h53
  2. Importer un fichier texte dans une table avec champ Memo
    Par Steph4fun dans le forum Paradox
    Réponses: 12
    Dernier message: 25/11/2007, 23h10
  3. [VBA] : Pb Create Table avec Champs Oui/Non
    Par GuidoBrasletti dans le forum Access
    Réponses: 8
    Dernier message: 15/03/2006, 19h11
  4. Table avec champ calule
    Par Treuze dans le forum Access
    Réponses: 2
    Dernier message: 11/01/2006, 16h06
  5. Réponses: 2
    Dernier message: 27/10/2005, 19h26

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