|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Bonsoir;
Lors de ma première conversion de ma base de données qui était en paradox vers Firebird, j'ai convertis mes champs boolean en champs smallint. Mais je me pose, maintenant, la question si ce n'est pas beaucoup mieux de les convertir en char(1)? Pourtant je pense que char(1) est beaucoup plus léger que smallint mais la plus part des outils de conversion vers Firebird convertissent les champs boolean en smallint ou même integer |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Tout simplement que le smallint ou integer se rapproche le plus de ce que pourrait être un vrai boolean.
Le plus souvent les langages de programmation code les boolean sur un octet (mais certain le code sur plus : un mot, un double voir même un long (4 octets)). D'un point de vue binaire, en utilisant les valeurs 0 pour faux, et 1 (ou -1) pour vrai, le bit le plus faible sera a zéro pour faux et a 1 pour vrai. Ce qui est parfait pour les opérateurs binaires. Si votre question c'est de savoir si un char ou un smallint (integer) sera plus performant, je dirais que c'est du pareil au même... Si c'est une question d'occupation disque ou mémoire, vous vous embêtez pour rien, car CHAR(1) ne prend pas forcément 1 octet cela dépend du charset utilisé et de la lettre mise dedans. Donc a mon avis le mieux c'est d'utiliser un smallint et même de créer un domaine. En attendant firebird 3. Code :
|
||
|
|
00
|
|
|
#3 | |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Citation:
Et quelque soit la différence minime entre les deux tailles, elle sera considérable si l'on arrive au nombre de centaines de milliers d'enregistrements. Comment choisir le charset et la lettre mise dedans? |
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
non
Smallint est au moins sur 2 octets Char(1) CHARACTER SET NONE est au moins sur 1 octet Reste à savoir comment ils sont enregistrés sur un disque il est très probable que ces deux types occupent la même place. De plus même s'il y avait un octet de différence quelle importance ? Si vous avez une base avec des millions d'enregistrements ca ne ferait que quelques Mega octets. Sachant que les disques actuelles font des centaines de Giga pour les plus petits... |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Alors vous opter pour smallint?
pourquoi pas alors integer? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com