Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3346508
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T01:18:44+00:00 2026-05-18T01:18:44+00:00

I want to store a user’s gender in a database with as little (size/performance)

  • 0

I want to store a user’s gender in a database with as little (size/performance) cost as possible.

So far, 3 scenarios come to mind

  1. Int – aligned with Enum in code (1 = Male, 2 = Female, 3 = …)
  2. char(1) – Store m, f or another single character identifier
  3. Bit (boolean) – is there an appropriate field name for this option?

The reason I ask is because of this answer which mentions that chars are smaller than booleans.

I should clarify that I’m using MS SQL 2008, which DOES in fact have the bit datatype.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T01:18:45+00:00Added an answer on May 18, 2026 at 1:18 am

    I’d call the column “gender”.

    Data Type   Bytes Taken          Number/Range of Values
    ------------------------------------------------
    TinyINT     1                    255 (zero to 255)
    INT         4            -       2,147,483,648 to 2,147,483,647
    BIT         1 (2 if 9+ columns)  2 (0 and 1)
    CHAR(1)     1                    26 if case insensitive, 52 otherwise
    

    The BIT data type can be ruled out because it only supports two possible genders which is inadequate. While INT supports more than two options, it takes 4 bytes — performance will be better with a smaller/more narrow data type.

    CHAR(1) has the edge over TinyINT – both take the same number of bytes, but CHAR provides a more narrow number of values. Using CHAR(1) would make using “m”, “f”,etc natural keys, vs the use of numeric data which are referred to as surrogate/artificial keys. CHAR(1) is also supported on any database, should there be a need to port.

    Conclusion

    I would use Option 2: CHAR(1).

    Addendum

    An index on the gender column likely would not help because there’s no value in an index on a low cardinality column. Meaning, there’s not enough variety in the values for the index to provide any value.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to store user's screen resolution in database when user login. How to
If I don't want to store user emails in plain text in the database,
I am a new developer on Android and I want store user data in
I want to store user-clicked data in a cookie which never has to go
I want to store a user setting(language). so i can get the corresponding resources
how should I store user data in asp.net mvc? Let's say a user want
I want to store data with every request (what user viewed what page of
I want to access an image stored in Blackberry, say at location store/home/user/image.png .
model.py: class Tribes(Group): members = models.ManyToManyField(User, related_name='tribes', verbose_name=_('members')) i want to store a number
I want to use Context.Items to store some info of a User Control like:

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.