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 :

enum ou tinyint(1)


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par défaut enum ou tinyint(1)
    référence: http://dev.mysql.com/doc/refman/5.0/...uirements.html

    Bonjour,

    je ne sais pas lequel il faut privilégier: enum ou tinyint(1)

    - en terme de perf. pour mysql
    - en terme d'utilisation espace


    un cas d'utilisation:

    compte_active (oui ou non : 1 ou 0)

    Il semblerait d'après la référence que la taille occupée est identique (sauf si beaucoup d'élément dans le enum), c'est bien ça ? En revanche, je ne sais pas ce que ça donne en terme de perf.

    Même si en terme d'espace cela est négligeable, je ne souhaite pas ce genre de commentaire, mais belle et bien savoir laquelle des deux méthodes est la mieux et dans quel circonstence.

    Merci de vos conseils.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 94
    Par défaut
    pour un champ devant être yes/no (ou 0/1), le binary n'est il pas plus simple?

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par défaut
    est-ce que quelqu'un peu apporter une réponse à la problématique ?

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par défaut
    Personne n'est capable de m'apporter une aide sur cette question ?

  5. #5
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    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 509
    Par défaut
    Citation Envoyé par CrazyCat
    pour un champ devant être yes/no (ou 0/1), le binary n'est il pas plus simple?
    Non car il faut savoir que le type binaire n'existe pas sous Mysql.
    De mon coté j'utilise le type tinyint(1)

  6. #6
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Citation Envoyé par Thierry8
    Il semblerait d'après la référence que la taille occupée est identique (sauf si beaucoup d'élément dans le enum), c'est bien ça ?
    C'est théoriquement cela puisque il serait logique qu'un enum permettant 8 valeurs soit stocké sur 1 octet. En fait, il semblerait que ça soit même 7 car la valeur 0 est toujours associée à la chaîne vide pour un enum.

    Au moins avec tinyint(1), on est certain que ça soit sur un octet.

    Citation Envoyé par Thierry8
    En revanche, je ne sais pas ce que ça donne en terme de perf.
    Si les requêtes sont faites avec 'true', 'oui' ou autres, il y a forcément un traitement pour trouver la valeur entière associée + vérification que la valeur est permise dans l'enum. Et si les requêtes sont faites directement avec l'index entier, je suppose (à tester) que MySQL vérifie que la valeur est comprise dans l'intervalle des index de l'enum.

    Le plus sûr reste quand même l'utilisation d'un type simple comme tinyint.

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par défaut
    ok je te remercie.

    Je vais donc opter pour le tinyint(1).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] ENUM vs VARCHAR vs TINYINT(jointure) ?
    Par Willpower dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/11/2014, 00h43
  2. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  3. [MySQL] Valeur par défaut d'un type ENUM
    Par aliasjcdenton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/10/2004, 20h44
  4. enum??
    Par $grm$ dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 23/04/2004, 16h34
  5. [TABLE][ENUM] u champs à choix multiple ?
    Par narmataru dans le forum SQL
    Réponses: 2
    Dernier message: 04/11/2003, 10h25

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