I have some columns where I have to store basically yes/no values. For example user status for active or inactive. Newsletter suscription status for suscribed or unsuscribed.
Well I want to know (considering tables with a lot of records) if the best way is to put a tiny int with char length of 1 and set 1 for yes, and 0 for no.
Is this a correct thought? Or there are no impact in the performance of db queries when using just words like yes, no, active, inactive, suscribed, etc.
thanks in advance.
Semantically, I suggest you use bit
if it's available to you. When looking at the column, any other developer can immediately determine that a boolean value is stored in it. If you don't have bit
, try using tinyint
. Ensuring that 1
is the only true
value and 0
is the only false
value will bring consistency. Otherwise, you could end up with a messy mixture of true
/false
, yes
/no
, valid
/invalid
, y
/n
, and/or t
/f
.
Comparing bit
or tinyint
values probably isn't slower than comparing strings, and even if it were slower than comparing strings, I can't imagine it having a significant effect on overall speed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With