2010-09-24 7 views
0

J'ai des données numériques avec des nombres représentant l'événement qui s'est passé. Les événements peuvent être publics ou privés. J'ai 2 choix et je ne sais pas lequel utiliser (c'est plus rapide).Qu'est-ce qui est le plus rapide dans mysql, egal ou supérieur sur des colonnes numériques?

  1. Je peux faire 2 colonnes, 1 est la colonne d'événements et les valeurs sont comme 1 ... 10. L'autre est la colonne smallint publique/privée qui indique si l'événement est public ou privé.

  2. Je ne peux faire qu'une seule colonne et numéroter des événements privés de 1 à 10 et des événements publics à partir de 100 ... 120. J'ai donc "caché" le type d'événement dans cette colonne.

Maintenant, je veux filtrer avec sélection bien sûr ... Je filtrerais la première approche que SELECT * à partir EVENT_TABLE OÙ EventType = 1

je filtrer la deuxième approche comme: SELECT * de events_table Où EventID> 100

Maintenant, ce que je veux vraiment savoir, c'est la condition numérique = (contant) plus rapide que < ou> (bien sûr, je vais indexer cette colonne!). Avec la deuxième approche, j'aurais besoin d'une colonne de moins. Je ne suis même pas sûr si c'est bon ou pas ...

Tout conseil serait appreceated.

Jerry

Répondre

3

Je ne sais pas s'il y a une certaine différence micro performance entre les deux approches (je doute), mais je serais certainement prêt pour la première approche. Mélanger différents types d'informations dans une colonne n'est pas quelque chose que je recommanderais.

+0

Thanx. Le problème est que si je mets des données dans une autre colonne, j'ai besoin de passer une autre information du type ou de la calculer à partir de l'ID de l'événement. Je reproduis l'information alors. – Jerry2

+0

Mais vous vouliez dire que l'utilisation de> ou Jerry2