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

Requêtes MySQL Discussion :

Performance, taille des tables=> nbr de champs


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Points : 120
    Points
    120
    Par défaut Performance, taille des tables=> nbr de champs
    Bonjour,

    je suis en train d'élaborer le schéma de la base de données d'un gros site.

    Dans mon analyse j'ai deux solutions :

    - soit je fais une table pour les résultats des recherches puis une autre pour les détails de résultats (complèterait alors les infos de la table recherche), j'aurais alors deux tables de 25 champs chacune

    - soit je mets toutes les informations dans une seule et même table (uniquement du select) j'aurais alors une table avec environs 50 champs

    J'opterais pour la première soluce à première vue....

    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Alors, si la relation entre les deux tables c'est du 1-1 alors il n'est pas utile de faire deux tables. Même si 50 champs parait gros parce que c'est peut habituel, il y a pas de contre indication.
    La lecture liniaire d'une table est plus rapide qu'une lecture sur plusieurs tables. Optimise sur le type de champs.
    Si tu ne fais que de l'INSERT et SELECT utilise le moteur de table ARCHIVE.
    Bientôt, il y aura un article traitant des différents moteurs de table.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par berceker united Voir le message
    Alors, si la relation entre les deux tables c'est du 1-1 alors il n'est pas utile de faire deux tables. Même si 50 champs parait gros parce que c'est peut habituel, il y a pas de contre indication.
    La lecture liniaire d'une table est plus rapide qu'une lecture sur plusieurs tables. Optimise sur le type de champs.
    Si tu ne fais que de l'INSERT et SELECT utilise le moteur de table ARCHIVE.
    Bientôt, il y aura un article traitant des différents moteurs de table.
    Super, merci pour ta réponse, c'est un peu ce que je pensais aussi...
    En fait il n'y aura même pas d'INSERT que du select ! je ne connais pas le moteur Archive, je vais voir ça ! J'ai aussi vu le partitionning qui m'a l'air aussi très efficace ? Peut-être même allier Archive et partitionning ?

    Petit édit : apparemment il n'est pas possible d'indexer des colonnes sur la table, ça va être chaud alors... j'ai besoin d'indexer toutes les colonnes qui sont utilisées par le moteur de recherche

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    Effectivement, si tu as besoin d'utiliser des index tu pourras pas utiliser l'INDEX.
    Il y a me moteur MERGE qui pourra peut être t'aider. En faite, tu découpes tes données dans plusieurs tables. Le moteur MERGE va faire l'équivalent d'un UNION entre les tables.
    Voici un ébauche sur l'article concernant les moteurs de table Mysql.
    C'est pas officiel et pas corrigé concernant les faute. Donc prudence
    http://www.php-girl.fr/Articles/arti.../sommaire.html

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Points : 120
    Points
    120
    Par défaut
    C'est encore moi

    J'ai une question triviale !
    Sur une table de 40 go environs, avec 3 millions d'enregistrements, est-ce qu'une table avec 300 colonnes aurait toujours des très bons temps ?

  6. #6
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    A froid je ne serait dire. En fait, tout dépend du type de champs. ça dépend de ce qui est demandé. Il est vrai que 40G pour seulement 3 000 0000 d'enregistrements. C'est énorme le coût d'une ligne si je devais faire 40g/3 millions. Si j'ai biens fait mon calcule ça fait du 14ko/lignes. J'aurais proposé d'utiliser un autre moteur que celle habituel. Dans la mesure ou c'est possible.
    Sur 300 champs ça depend mais ça reste énorme mais peut être pas insurmontable. Il faut faire des tests de comparaison.

Discussions similaires

  1. Oracle 9i : Augmentation de la taille des tables
    Par sofiane_bfm007 dans le forum Administration
    Réponses: 5
    Dernier message: 09/05/2008, 16h24
  2. Augmentation soudaine de la taille des tables
    Par tristan_37 dans le forum Oracle
    Réponses: 35
    Dernier message: 09/04/2008, 16h52
  3. [Access 2000] Taille des tables
    Par Marco_SAP dans le forum Access
    Réponses: 15
    Dernier message: 08/09/2005, 16h00
  4. Taille des Tables InnoDB
    Par Mehdi Feki dans le forum Outils
    Réponses: 2
    Dernier message: 29/08/2005, 10h21
  5. SQL 2000 - Liste + taille des tables et index
    Par Fox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2004, 15h59

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